Project

General

Profile

バグ #4422

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

Added by n-miyamoto over 3 years ago. Updated about 3 years ago.

Status:
終了
Priority:
通常
Assignee:
Start date:
01/19/2018
Due date:
% Done:

100%

Estimated time:

Description

以下のコードについて、参照カウントが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つ減っています。

History

#1 Updated by n-miyamoto over 3 years ago

  • Status changed from 新規 to 解決
  • Assignee set to n-miyamoto
  • % Done changed from 0 to 100

#2 Updated by n-miyamoto about 3 years ago

  • Status changed from 解決 to 終了

Also available in: Atom PDF