diff options
Diffstat (limited to 'TAO/tao/PI_Server/PICurrent_Guard.cpp')
-rw-r--r-- | TAO/tao/PI_Server/PICurrent_Guard.cpp | 12 |
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 */ |