プロジェクト

全般

プロフィール

バグ #4422

NamingOnCorbaコンストラクタに渡すORBの参照カウントの問題

n-miyamoto約6年前に追加. 5年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2018/01/19
期日:
進捗率:

100%

予定工数:

説明

以下のコードについて、参照カウントが1つ多く減る可能性があるため調査する。

  NamingBase* NamingManager::createNamingObj(const char* method,
                                             const char* name_server)
  {
    (省略)
            CORBA::ORB_var orb = m_manager->getORB();
            name = new NamingOnCorba(orb.in(), name_server);

まず上記の部分でgetORB使用のため参照カウントが1つ増加している。
しかしcreateNamingObj関数が終了すると変数orbが削除されて参照カウントが1つ減少します。
このため、この部分だけを見ると差し引き0です。

しかし、NamingOnCorbaコンストラクタで変数m_cosnamingの初期化を行っています。

  NamingOnCorba::NamingOnCorba(CORBA::ORB_ptr orb, const char* names)
    : m_cosnaming(orb, names), m_endpoint(""),
      m_replaceEndpoint(false)

変数m_cosnamingはCorbaNamingクラスであるため、CorbaNamingのコンストラクタが呼ばれています。

  CorbaNaming::CorbaNaming(CORBA::ORB_ptr orb, const char* name_server)
    : m_varORB(orb), m_nameServer(name_server),

m_varORBはCORBA::ORB_var型の変数です。この変数が削除されると参照カウントが減ります。

おそらく参照カウントを1つしか増やしていないのに2つ減っています。

履歴

#1 n-miyamoto約6年前に更新

  • ステータス新規 から 解決 に変更
  • 担当者n-miyamoto にセット
  • 進捗率0 から 100 に変更

#2 n-miyamoto5年以上前に更新

  • ステータス解決 から 終了 に変更

他の形式にエクスポート: Atom PDF