Fix a bug at c-generator 58/173958/1
authorJunghoon Park <jh9216.park@samsung.com>
Tue, 27 Mar 2018 07:33:32 +0000 (16:33 +0900)
committerJunghoon Park <jh9216.park@samsung.com>
Tue, 27 Mar 2018 07:33:32 +0000 (16:33 +0900)
- Wrong type was generated

Change-Id: I38a1973142d54ed68015577bdfbe25e3677335a4
Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
idlc/c_gen/c_proxy_body_gen.cc

index d7299fb..377e356 100644 (file)
@@ -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);