summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2006-10-25 15:36:24 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2006-10-25 15:36:24 +0000
commit5e1d38557acf30fa79b68294d95aaefa288b7a03 (patch)
treec436af5ba0e506bd740205e76f32e5e6dd47c039
parentec3dcf5091a86cbc2f22d833e83a64bc2afe2e98 (diff)
downloadATCD-5e1d38557acf30fa79b68294d95aaefa288b7a03.tar.gz
ChangeLogTag: Wed Oct 25 15:33:27 UTC 2006 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r--TAO/ChangeLog8
-rw-r--r--TAO/tao/PortableServer/Root_POA.cpp5
2 files changed, 13 insertions, 0 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 7f3ef65cb48..5504df8ccaf 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,11 @@
+Wed Oct 25 15:33:27 UTC 2006 Chad Elliott <elliott_c@ociweb.com>
+
+ * tao/PortableServer/Root_POA.cpp:
+
+ My change from Mon Oct 23 12:24:57 UTC 2006 uncovered yet another
+ reference counting problem. The TAO_Root_POA was not manipulating
+ the reference count of the TAO_POA_Manager that it held.
+
Mon Oct 23 12:24:57 UTC 2006 Chad Elliott <elliott_c@ociweb.com>
* tao/PortableServer/Object_Adapter.h:
diff --git a/TAO/tao/PortableServer/Root_POA.cpp b/TAO/tao/PortableServer/Root_POA.cpp
index 31e240c2006..458c909ee3d 100644
--- a/TAO/tao/PortableServer/Root_POA.cpp
+++ b/TAO/tao/PortableServer/Root_POA.cpp
@@ -255,6 +255,10 @@ TAO_Root_POA::TAO_Root_POA (const TAO_Root_POA::String &name,
caller_key_to_object_ (0),
servant_for_key_to_object_ (0)
{
+ // Since we are keeping a reference to a POAManager, we need to
+ // increment the reference count
+ this->poa_manager_._add_ref();
+
// Parse the policies that are used in the critical path in
// a cache.
this->cached_policies_.update (this->policies_
@@ -331,6 +335,7 @@ TAO_Root_POA::TAO_Root_POA (const TAO_Root_POA::String &name,
TAO_Root_POA::~TAO_Root_POA (void)
{
+ this->poa_manager_._remove_ref();
}
void