diff options
-rw-r--r-- | idlc/c_gen/c_proxy_body_gen.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/idlc/c_gen/c_proxy_body_gen.cc b/idlc/c_gen/c_proxy_body_gen.cc index d7299fb..377e356 100644 --- a/idlc/c_gen/c_proxy_body_gen.cc +++ b/idlc/c_gen/c_proxy_body_gen.cc @@ -405,6 +405,9 @@ std::string CProxyBodyGen::GetMethodWriteString(const Interface& inf, return "&(*" + p->GetID() + ")->parcelable, " + "*" + p->GetID(); else return "&" + p->GetID() + "->parcelable, " + p->GetID(); + } else if (p->GetParameterType().GetDirection() + == ParameterType::Direction::REF) { + return "*" + p->GetID(); } return p->GetID(); } @@ -458,7 +461,7 @@ std::string CProxyBodyGen::GetMethodReadString(const Interface& inf, p->GetParameterType().GetBaseType().ToString() == "list" || p->GetParameterType().GetBaseType().ToString() == "array") return "&out_" + p->GetID() + "->parcelable, out_" + p->GetID(); - return "out_" + p->GetID(); + return "&out_" + p->GetID(); } ); s += "*" + p->GetID() + " = out_" + p->GetID() + ";" + NLine(1); |