清水様
安藤です
ご指摘の通りです。
CORBAの通常のルールでは、オブジェクトリファレンスを
return時には内部でリファレンスの所有権を放棄(例えばduplicate()し)、
外でreleaseするのが正しいです。
> OpenRTM-aist開発者の皆様
>
> Configuration_impl::getObjRef();
> で、RefCountをインクリメントしていないのですが、
> これは意図したものでしょうか。
> (var型のreturnはptr型をそのまま返すだけ
> のようです。omniORB4/templatedecls.h参照。)
>
> 基本ルールからすると、duplicateしたほうが安全では、
> と考えます。
この辺は、CORBAインターフェースとそうでないインターフェースの
オブジェクトリファレンスの扱いをそれぞれどう扱うかの問題で、
CORBAインターフェースの方は選択の余地はありませんが、
それ以外のインターフェースでは、以前は結構適当に扱ってました
ので、現在それらを直す作業を行っています。
ちなみに、getObjRef()が参照をduplicateしないのは、
rtobj.getObjRef()->get_component_profile() のように ->演算子を
ダイレクトに使えたり便利なのでこのようにしてました。
OpenRTM-aist開発者の皆様
Configuration_impl::getObjRef();
で、RefCountをインクリメントしていないのですが、
これは意図したものでしょうか。
(var型のreturnはptr型をそのまま返すだけ
のようです。omniORB4/templatedecls.h参照。)
基本ルールからすると、duplicateしたほうが安全では、
と考えます。
静岡大 清水