summaryrefslogtreecommitdiff
path: root/TAO/tao/PI/PICurrent_Impl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/PI/PICurrent_Impl.cpp')
-rw-r--r--TAO/tao/PI/PICurrent_Impl.cpp44
1 files changed, 8 insertions, 36 deletions
diff --git a/TAO/tao/PI/PICurrent_Impl.cpp b/TAO/tao/PI/PICurrent_Impl.cpp
index 4aa071e258c..ecbccc90274 100644
--- a/TAO/tao/PI/PICurrent_Impl.cpp
+++ b/TAO/tao/PI/PICurrent_Impl.cpp
@@ -1,4 +1,4 @@
-#include "tao/PI/PICurrent_Impl.h"
+#include "PICurrent_Impl.h"
#if TAO_HAS_INTERCEPTORS == 1
@@ -8,17 +8,14 @@ ACE_RCSID (tao,
#if !defined (__ACE_INLINE__)
-# include "tao/PI/PICurrent_Impl.inl"
+# include "PICurrent_Impl.inl"
#endif /* __ACE_INLINE__ */
-#include "tao/PI/PICurrent_Copy_Callback.h"
+#include "PICurrent_Copy_Callback.h"
#include "tao/TAO_Server_Request.h"
#include "tao/SystemException.h"
#include "ace/Log_Msg.h"
-#include "tao/debug.h"
-
-TAO_BEGIN_VERSIONED_NAMESPACE_DECL
TAO::PICurrent_Impl::PICurrent_Impl (void)
: slot_table_ (),
@@ -47,16 +44,9 @@ TAO::PICurrent_Impl::get_slot (PortableInterceptor::SlotId identifier
// No need to check validity of SlotId. It is validated before this
// method is invoked.
- // Get the slot table that is currently active
PICurrent_Impl::Table & table = this->current_slot_table ();
- // The active slot table should never be a lazy copy of itself!
- if (this->lc_slot_table_ == &this->slot_table_)
- {
- if (TAO_debug_level > 0)
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("TAO (%P|%t) Lazy copy of self detected at %N,%l")));
- ACE_THROW (CORBA::INTERNAL ());
- }
+ ACE_ASSERT (this->lc_slot_table_ != &this->slot_table_);
CORBA::Any * any = 0;
@@ -100,20 +90,10 @@ TAO::PICurrent_Impl::set_slot (PortableInterceptor::SlotId identifier,
// method is invoked.
// Perform deep copy of the logically copied slot table, if
- // necessary, before modifying our own slot table. This is a setup
- // where another PICurrent refers to our slot table, so we force the
- // the other PICurrent does copy our table before making changes to
- // our table.
- if (this->copy_callback_ != 0)
- this->copy_callback_->execute ();
-
- // If we have a logical copied slot table we refer to, just make a
- // copy of that table first before making changes to our table.
- if (this->lc_slot_table_ != 0)
- {
- this->slot_table_ = *this->lc_slot_table_;
- this->lc_slot_table_ = 0;
- }
+ // necessary, before modifying our own slot table.
+ if (this->copy_callback_ != 0
+ && this->copy_callback_->execute () != 0)
+ ACE_THROW (CORBA::INTERNAL ());
// If the slot table array isn't large enough, then increase its
// size. We're guaranteed not to exceed the number of allocated
@@ -129,15 +109,7 @@ void
TAO::PICurrent_Impl::execute_destruction_callback (
TAO::PICurrent_Impl::Table * old_lc_slot_table)
{
- // we are being asked to lc another table, if this
- // is null, make sure we take a physical copy of the
- // existing table we had lc before it disappears.
- if ((0 == old_lc_slot_table) && (0 != this->lc_slot_table_))
- this->slot_table_ = *this->lc_slot_table_;
-
this->lc_slot_table_ = old_lc_slot_table;
}
-TAO_END_VERSIONED_NAMESPACE_DECL
-
#endif /* TAO_HAS_INTERCEPTORS == 1 */