diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2006-02-15 11:42:16 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2006-02-15 11:42:16 +0000 |
commit | d162dcd27dafe00430c745463ccdabc2313178d0 (patch) | |
tree | c7fbd4b677fce7abfd9ec503c0276f81edfa07e3 /TAO/tao/PI/PICurrent_Impl.cpp | |
parent | f48593ae1385ede56b4d2ca5dc23e0a0836c34bb (diff) | |
download | ATCD-d162dcd27dafe00430c745463ccdabc2313178d0.tar.gz |
ChangeLogTag: Wed Feb 16 11:40:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO/tao/PI/PICurrent_Impl.cpp')
-rw-r--r-- | TAO/tao/PI/PICurrent_Impl.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/TAO/tao/PI/PICurrent_Impl.cpp b/TAO/tao/PI/PICurrent_Impl.cpp index b8696087feb..b200b50a089 100644 --- a/TAO/tao/PI/PICurrent_Impl.cpp +++ b/TAO/tao/PI/PICurrent_Impl.cpp @@ -94,10 +94,21 @@ 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. + // 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; + } + // If the slot table array isn't large enough, then increase its // size. We're guaranteed not to exceed the number of allocated // slots for the reason stated above. |