Replies: 1 comment 1 reply
-
Which OS and Fast DDS version are you using? |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I am using arm64 OS and fastdds version 2.9.1
When I run HelloWord, a crash occurs, the crash occurs at (dynamic_cast) of the code below, which is the fifth line
bool DomainParticipantImpl::register_dynamic_type_to_factories(
const TypeSupport& type) const
{
using namespace eprosima::fastrtps::types;
DynamicPubSubType* dpst = dynamic_cast<DynamicPubSubType*>(type.get());
if (dpst != nullptr) // Registering a dynamic type.
{
TypeObjectFactory* objectFactory = TypeObjectFactory::get_instance();
DynamicTypeBuilderFactory* dynFactory = DynamicTypeBuilderFactory::get_instance();
const TypeIdentifier* id = objectFactory->get_type_identifier_trying_complete(dpst->getName());
if (id == nullptr)
{
std::map<MemberId, DynamicTypeMember*> membersMap;
dpst->GetDynamicType()->get_all_members(membersMap);
std::vector<const MemberDescriptor*> members;
for (auto it : membersMap)
{
members.push_back(it.second->get_descriptor());
}
TypeObject typeObj;
dynFactory->build_type_object(dpst->GetDynamicType()->get_type_descriptor(), typeObj, &members);
// Minimal too
dynFactory->build_type_object(dpst->GetDynamicType()->get_type_descriptor(), typeObj, &members, false);
const TypeIdentifier* type_id2 = objectFactory->get_type_identifier(dpst->getName());
const TypeObject* type_obj = objectFactory->get_type_object(dpst->getName());
if (type_id2 == nullptr)
{
EPROSIMA_LOG_ERROR(DOMAIN_PARTICIPANT, "Cannot register dynamic type " << dpst->getName());
}
else
{
objectFactory->add_type_object(dpst->getName(), type_id2, type_obj);
Beta Was this translation helpful? Give feedback.
All reactions