From 04d50d29dfdb41f19c5922534c28e115ae4296d3 Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Fri, 14 Dec 2018 17:21:58 +0900 Subject: [PATCH] Fix bugs about C generator This patch is to fix bugs about user-defined types. Change-Id: I0478da6b617499ad3680b16057008cfce3327dad Signed-off-by: Hwankyu Jhun --- idlc/c_gen/c_body_gen_base.cc | 12 +++++------- idlc/c_gen/c_header_gen_base.cc | 3 --- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/idlc/c_gen/c_body_gen_base.cc b/idlc/c_gen/c_body_gen_base.cc index 00332cf..b744b49 100644 --- a/idlc/c_gen/c_body_gen_base.cc +++ b/idlc/c_gen/c_body_gen_base.cc @@ -241,9 +241,6 @@ void CBodyGeneratorBase::GenStructureGetter(std::ofstream& stream, return GetStructIdWithNamespace(st); }, [&]()->std::string { - if (i->GetType().IsUserDefinedType()) - return GetParcelParamTypeString(i->GetType()); - if (i->GetType().ToString() == "array") return GetStringFromElementType(i->GetType()) + "*"; @@ -265,7 +262,7 @@ void CBodyGeneratorBase::GenStructureGetter(std::ofstream& stream, std::string str; str += "!"; str += i->GetID(); - str += "|| "; + str += " || "; str += "!" + i->GetID() + "_size"; return str; } @@ -446,7 +443,7 @@ std::string CBodyGeneratorBase::GetParcelWriteString(const std::string& id, }, [&]()->std::string { if (type.IsUserDefinedType()) - return "&h->" + id + ", h->" + id; + return "&h->" + id + "->parcelable, h->" + id; if (type.ToString() == "list") return "g_list_length(h->" + id + ")"; if (type.ToString() == "array") @@ -661,7 +658,7 @@ std::string CBodyGeneratorBase::GetParcelReadString(const std::string& id, }, [&]()->std::string { if (type.IsUserDefinedType()) - return "&h->" + id + "h->" + id; + return "&h->" + id + "->parcelable, h->" + id; return "&h->" + id; }); } @@ -869,7 +866,8 @@ std::string CBodyGeneratorBase::GetGetterString(const std::string& id, } if (type.IsUserDefinedType()) { - str += GetSetterString(type, id, "h->" + id); + str += GetHandlePrefix() + GetFullNameFromType(type) + + "_clone(h->"+ id + ", " + id +");" + NLine(1); } else { str += GetSetterString(type, "*" + id, "h->" + id); } diff --git a/idlc/c_gen/c_header_gen_base.cc b/idlc/c_gen/c_header_gen_base.cc index c726d2f..ee86046 100644 --- a/idlc/c_gen/c_header_gen_base.cc +++ b/idlc/c_gen/c_header_gen_base.cc @@ -185,9 +185,6 @@ void CHeaderGeneratorBase::GenStructureGetter(std::ofstream& stream, return GetStructIdWithNamespace(st); }, [&]()->std::string { - if (i->GetType().IsUserDefinedType()) - return GetParcelParamTypeString(i->GetType()); - if (i->GetType().ToString() == "array") return GetStringFromElementType(i->GetType()) + "*"; -- 2.7.4