Skip to content

Commit 1bd7833

Browse files
Refs #22202. TMP: debugging
Signed-off-by: Juan Lopez Fernandez <juanlopez@eprosima.com>
1 parent aed7a60 commit 1bd7833

2 files changed

Lines changed: 19 additions & 6 deletions

File tree

src/cpp/fastdds/xtypes/serializers/json/dynamic_data_json.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -591,8 +591,13 @@ ReturnCode_t json_serialize_enum_member(
591591

592592
// Get value depending on the enclosing type
593593
assert(enum_type->get_kind() == TK_ENUM);
594-
TypeKind enclosing_kind = traits<DynamicType>::narrow<DynamicTypeImpl>(enum_type->get_all_members_by_index().at(
595-
0)->get_descriptor().type())->get_kind(); // Unfortunately DynamicDataImpl::get_enclosing_typekind is private
594+
// TypeKind enclosing_kind = traits<DynamicType>::narrow<DynamicTypeImpl>(enum_type->get_all_members_by_index().at(
595+
// 0)->get_descriptor().type())->get_kind(); // Unfortunately DynamicDataImpl::get_enclosing_typekind is private
596+
auto enum_members = enum_type->get_all_members_by_index();
597+
auto enum_desc = enum_members.at(0)->get_descriptor();
598+
auto enum_member_type = enum_desc.type();
599+
auto enum_member_type_impl = traits<DynamicType>::narrow<DynamicTypeImpl>(enum_member_type);
600+
TypeKind enclosing_kind = enum_member_type_impl->get_kind();
596601
nlohmann::json j_value;
597602
if (TK_INT8 == enclosing_kind)
598603
{

src/cpp/fastdds/xtypes/serializers/json/json_dynamic_data.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,7 @@ ReturnCode_t json_deserialize_enum_member(
687687
// Get enclosing type kind to parse the value accordingly, and later user the appropriate setter
688688
assert(enum_type->get_kind() == TK_ENUM);
689689
TypeKind enclosing_kind = traits<DynamicType>::narrow<DynamicTypeImpl>(enum_type->get_all_members_by_index().at(
690-
0)->get_descriptor().type())->get_kind(); // Unfortunately DynamicDataImpl::get_enclosing_typekind is private
690+
0)->get_descriptor().type())->get_kind(); // Unfortunately DynamicDataImpl::get_enclosing_typekind is private
691691

692692
if (DynamicDataJsonFormat::OMG == format)
693693
{
@@ -782,10 +782,18 @@ ReturnCode_t json_deserialize_enum_member(
782782
{
783783
// Find value corresponding to name
784784

785+
// DynamicTypeMembersByName all_members;
786+
// if (RETCODE_OK !=
787+
// (ret =
788+
// traits<DynamicType>::narrow<DynamicTypeImpl>(enum_type)->get_all_members_by_name(all_members)))
789+
// {
790+
// EPROSIMA_LOG_ERROR(XTYPES_UTILS,
791+
// "Error encountered while deserializing TK_ENUM member from JSON: get_all_members_by_name failed.");
792+
// return ret;
793+
// }
794+
785795
DynamicTypeMembersByName all_members;
786-
if (RETCODE_OK !=
787-
(ret =
788-
traits<DynamicType>::narrow<DynamicTypeImpl>(enum_type)->get_all_members_by_name(all_members)))
796+
if (RETCODE_OK != (ret = enum_type->get_all_members_by_name(all_members)))
789797
{
790798
EPROSIMA_LOG_ERROR(XTYPES_UTILS,
791799
"Error encountered while deserializing TK_ENUM member from JSON: get_all_members_by_name failed.");

0 commit comments

Comments
 (0)