[openrtm-commit:02835] r3046 - trunk/OpenRTM-aist/src/lib/rtm

openrtm @ openrtm.org openrtm @ openrtm.org
2017年 9月 19日 (火) 20:34:14 JST


Author: n-ando
Date: 2017-09-19 20:34:14 +0900 (Tue, 19 Sep 2017)
New Revision: 3046

Modified:
   trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp
Log:
[compat,rtc.conf] A bug in preconnection option parser, which crash when ConnectorProfiles are not given or invalid format, fixed.

Modified: trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp
===================================================================
--- trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp	2017-09-15 07:50:04 UTC (rev 3045)
+++ trunk/OpenRTM-aist/src/lib/rtm/Manager.cpp	2017-09-19 11:34:14 UTC (rev 3046)
@@ -406,7 +406,7 @@
       }
 
     { // pre-connection
-      RTC_TRACE(("Connection pre-creation: %s",
+      RTC_TRACE(("Connection pre-connection: %s",
                  m_config["manager.components.preconnect"].c_str()));
       std::vector<std::string> connectors;
       connectors = coil::split(m_config["manager.components.preconnect"], ",");
@@ -414,7 +414,14 @@
         {
           // ConsoleIn.out:Console.in(dataflow_type=push,....)
           coil::vstring conn_prop = coil::split(connectors[i], "(");
-          coil::replaceString(conn_prop[1], ")", "");
+          if (conn_prop.size() == 1)
+            {
+              conn_prop.   // default connector profile value
+                push_back("dataflow_type=push&interface_type=corba_cdr");
+            } // after this conn_prop.size() >= 2
+          std::size_t pos = conn_prop[1].find_last_of(")");
+          if (pos != std::string::npos) { conn_prop[1].erase(pos); }
+
           coil::vstring comp_ports;
           comp_ports = coil::split(conn_prop[0], ":");
           if (comp_ports.size() != 2)



More information about the openrtm-commit mailing list