バグ #783
完了
複合化したコンポーネントの分解時にセグメントエラーが発生する
kurihara さんが15年以上前に追加.
15年以上前に更新.
説明
SimpleIOのConsoleIn,ConsoleOutコンポーネントをRTSystemEditorにて複合化後、
分解するとどちらか一方のRTCがセグメントエラーにて終了する。
動作確認を行ったリビジョンは、1437。
example/CompositeにあるComposite実行ファイルを実行して起動されるコンポーネント
群の複合・分解ではセグメントエラーは発生しない。
- ステータス を 新規 から 解決 に変更
- 進捗率 を 0 から 100 に変更
[[]]PortAdmin.cppのregisterPort(PortService_ptr port)メソッドにて、引数のportをメンバー変数に格納する際、_duplicate()がされていなかったのが原因だった。
下記のように修正することでコンポーネントの複合・分解でのエラーは発生しなくなった。
$ svn diff PortAdmin.cpp
Index: PortAdmin.cpp
===================================================================
--- PortAdmin.cpp (リビジョン 1443)
+++ PortAdmin.cpp (作業コピー)
@@ -157,7 +157,7 @@
void PortAdmin::registerPort(PortService_ptr port)
{
- CORBA_SeqUtil::push_back(m_portRefs, port);
+ CORBA_SeqUtil::push_back(m_portRefs, RTC::PortService::_duplicate(port));
}
/*!
他の形式にエクスポート: Atom
PDF