diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2010-11-15 12:49:39 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2010-11-15 12:49:39 +0000 |
commit | 02a699ca7a4c9d6d4fe77f938d3100d70cc10802 (patch) | |
tree | d63f3261304531a5eafa9c006d1f0f3c2dda89be /CIAO/connectors/dds4ccm/impl/ndds | |
parent | 621806c04b3722a4df247ea0fc5a06c8abb013de (diff) | |
download | ATCD-02a699ca7a4c9d6d4fe77f938d3100d70cc10802.tar.gz |
Mon Nov 15 12:45:07 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* connectors/dds4ccm/impl/DDS_TopicBase_Connector_T.cpp:
* connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp:
* connectors/dds4ccm/impl/ndds/TypeSupport.h:
* connectors/dds4ccm/impl/ndds/TypeSupport.cpp:
Fixed memory leak and shutdown crashes
Diffstat (limited to 'CIAO/connectors/dds4ccm/impl/ndds')
-rw-r--r-- | CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp | 1 | ||||
-rw-r--r-- | CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.cpp | 12 | ||||
-rw-r--r-- | CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.h | 1 |
3 files changed, 13 insertions, 1 deletions
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp index 037ad275d20..f1c2b39f9e9 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/DomainParticipantManager.cpp @@ -126,7 +126,6 @@ namespace CIAO "DomainParticipantManager::~DomainParticipantManager - " "Finalizing DDS\n")); - //DDS_TypeSupport_i::close (); DDSDomainParticipantFactory::finalize_instance (); } diff --git a/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.cpp b/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.cpp index 04ab4b2caee..dadc794445a 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.cpp +++ b/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.cpp @@ -22,6 +22,18 @@ namespace CIAO type_factories [type] = f; } + DDS_TypeFactory_i* + DDS_TypeSupport_i::unregister_type (const char* type, ::DDS::DomainParticipant_ptr) + { + DDS4CCM_DEBUG (DDS4CCM_LOG_LEVEL_ACTION, (LM_INFO, DDS4CCM_INFO + "DDS_TypeSupport_i::unregister_type - " + "Unregistered factory for type %C\n", type)); + + DDS_TypeFactory_i* f = type_factories [type]; + type_factories [type] = 0; + return f; + } + ::DDS::DataWriter_ptr DDS_TypeSupport_i::create_datawriter (DDSDataWriter* dw, ::DDS::DomainParticipant_ptr dp) { diff --git a/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.h b/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.h index a62d67423c0..be23ede05b5 100644 --- a/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.h +++ b/CIAO/connectors/dds4ccm/impl/ndds/TypeSupport.h @@ -49,6 +49,7 @@ namespace CIAO public: static void close (void); static void register_type (const char* type, DDS_TypeFactory_i* factory, ::DDS::DomainParticipant_ptr dp); + static DDS_TypeFactory_i* unregister_type (const char* type, ::DDS::DomainParticipant_ptr dp); static ::DDS::DataWriter_ptr create_datawriter (DDSDataWriter* dw, ::DDS::DomainParticipant_ptr dp); static ::DDS::DataReader_ptr create_datareader (DDSDataReader* dr, ::DDS::DomainParticipant_ptr dp); private: |