diff options
author | Hwankyu Jhun <h.jhun@samsung.com> | 2024-04-25 11:00:17 +0900 |
---|---|---|
committer | Hwankyu Jhun <h.jhun@samsung.com> | 2024-04-25 11:00:17 +0900 |
commit | ec79e0e5db592580e6de9d686155160d6e86cb35 (patch) | |
tree | 2a16f1091ce5c315fd9bd9897a8621a956ec5995 | |
parent | 29d8591ec4ed43c33945778f11965ffdc2b6ea1c (diff) | |
download | tidl-ec79e0e5db592580e6de9d686155160d6e86cb35.tar.gz tidl-ec79e0e5db592580e6de9d686155160d6e86cb35.tar.bz2 tidl-ec79e0e5db592580e6de9d686155160d6e86cb35.zip |
Fix C++ Generator of version 2
- Add setting the initialization value
Change-Id: I7226c5892c948a75b044fd6ca21257ac8c67ec10
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r-- | idlc/gen/version2/cpp_generator_base.cc | 6 | ||||
-rw-r--r-- | idlc/gen/version2/cpp_generator_base_cb.hh | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/idlc/gen/version2/cpp_generator_base.cc b/idlc/gen/version2/cpp_generator_base.cc index 61f8b7a..83f3135 100644 --- a/idlc/gen/version2/cpp_generator_base.cc +++ b/idlc/gen/version2/cpp_generator_base.cc @@ -898,7 +898,8 @@ std::string CppGeneratorBase::GenUnitImplDeserializer(const BaseType& type) { } else { code = ReplaceAll(CB_UNIT_IMPL_DESERIALIZER_BASE) .Change("<TYPE>", ConvertTypeToString(type)) - .Change("<PARCEL_TYPE>", GetParcelType(type)); + .Change("<PARCEL_TYPE>", GetParcelType(type)) + .Change("<SET_INIT_VALUE>", GetSettingInitValue(type)); } return RemoveLine(code); @@ -912,7 +913,8 @@ std::string CppGeneratorBase::GenUnitMapBaseRead(const Structure& st) { for (auto& elm : st.GetElements()) { code += ReplaceAll(CB_UNIT_MAP_BASE_READ) .Change("<TYPE>", ConvertTypeToString(elm->GetType())) - .Change("<NAME>", elm->GetID()); + .Change("<NAME>", elm->GetID()) + .Change("<SET_INIT_VALUE>", GetSettingInitValue(elm->GetType())); } return code; diff --git a/idlc/gen/version2/cpp_generator_base_cb.hh b/idlc/gen/version2/cpp_generator_base_cb.hh index aaeda07..237da74 100644 --- a/idlc/gen/version2/cpp_generator_base_cb.hh +++ b/idlc/gen/version2/cpp_generator_base_cb.hh @@ -820,10 +820,11 @@ for (int index = 0; index < tmp_size; ++index) { /** * <NAME> The name of the element of the value. + * <SET_INIT_VALUE> The setting initialization value. */ constexpr const char CB_UNIT_MAP_BASE_READ[] = R"__cpp_cb( -<TYPE> tmp_<NAME>; +<TYPE> tmp_<NAME><SET_INIT_VALUE>; unit_map.Read("<NAME>", tmp_<NAME>); value.Set<NAME>(tmp_<NAME>); )__cpp_cb"; @@ -905,10 +906,11 @@ if (tmp_filename != nullptr) { /** * <TYPE> The type of the parameter. * <PARCEL_TYPE> The type of the parcel type of the parameter. + * <SET_INIT_VALUE> The setting initialization value. */ constexpr const char CB_UNIT_IMPL_DESERIALIZER_BASE[] = R"__cpp_cb( -<TYPE> tmp_value; +<TYPE> tmp_value<SET_INIT_VALUE>; rpc_port_parcel_read_<PARCEL_TYPE>(GetParcel(), &tmp_value); value = tmp_value; )__cpp_cb"; @@ -918,7 +920,7 @@ value = tmp_value; */ constexpr const char CB_UNIT_IMPL_DESERIALIZER_ENUM[] = R"__cpp_cb( -int tmp_value; +int tmp_value = -1; rpc_port_parcel_read_int32(GetParcel(), &tmp_value); value = static_cast<<TYPE>>(tmp_value); )__cpp_cb"; |