summaryrefslogtreecommitdiff
path: root/TAO/tao/PI_Server/PICurrent_Guard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/PI_Server/PICurrent_Guard.cpp')
-rw-r--r--TAO/tao/PI_Server/PICurrent_Guard.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/TAO/tao/PI_Server/PICurrent_Guard.cpp b/TAO/tao/PI_Server/PICurrent_Guard.cpp
index 23ed31147d2..9aff070ca96 100644
--- a/TAO/tao/PI_Server/PICurrent_Guard.cpp
+++ b/TAO/tao/PI_Server/PICurrent_Guard.cpp
@@ -1,4 +1,4 @@
-#include "tao/PI_Server/PICurrent_Guard.h"
+#include "PICurrent_Guard.h"
#if TAO_HAS_INTERCEPTORS == 1
@@ -14,8 +14,6 @@ ACE_RCSID (PortableServer,
#include "tao/PI/PICurrent.h"
#include "tao/PI/PICurrent_Impl.h"
-TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
TAO::PICurrent_Guard::PICurrent_Guard (TAO_ServerRequest &server_request,
bool tsc_to_rsc)
: src_ (0),
@@ -64,9 +62,11 @@ TAO::PICurrent_Guard::PICurrent_Guard (TAO_ServerRequest &server_request,
TAO::PICurrent_Guard::~PICurrent_Guard (void)
{
if (this->src_ != 0 && this->dest_ != 0
- && this->src_ != this->dest_
- && this->dest_->lc_slot_table (this->src_))
+ && this->src_ != this->dest_)
{
+ // This copy better be exception-safe!
+ this->dest_->lc_slot_table (this->src_);
+
// PICurrent will potentially have to call back on the request
// scope current so that it can deep copy the contents of the
// thread scope current if the contents of the thread scope
@@ -76,12 +76,10 @@ TAO::PICurrent_Guard::~PICurrent_Guard (void)
// necessary, if the thread scope current is modified after its
// contents have been *logically* copied to the request scope
// current. The same goes for the reverse, i.e. RSC to TSC.
-
this->copy_callback_->src_and_dst (this->src_, this->dest_);
this->src_->copy_callback (this->copy_callback_);
}
}
-TAO_END_VERSIONED_NAMESPACE_DECL
#endif /* TAO_HAS_INTERCEPTORS == 1 */