summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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