diff options
author | msmit <msmit@remedy.nl> | 2009-03-05 07:41:07 +0000 |
---|---|---|
committer | msmit <msmit@remedy.nl> | 2009-03-05 07:41:07 +0000 |
commit | e7cfbeb6d5b7efb3c8194822743889eb8cc87ffb (patch) | |
tree | 0f4a8bf789ea1a972242c44e624a1a7368bcccf2 /TAO/tao/ZIOP | |
parent | 90b96e68a1108ac985ae8bdfc76006735c23a1dc (diff) | |
download | ATCD-e7cfbeb6d5b7efb3c8194822743889eb8cc87ffb.tar.gz |
Thu Mar 5 07:36:08 UTC 2009 Marcel Smit <msmit@remedy.nl>
* tao/GIOP_Message_Base.cpp
* tao/GIOP_Message_Base.h
* tao/ZIOP/ZIOP.cpp
* tao/ZIOP/ZIOP.h
* tao/ZIOP_Adapter.h
Reverted last changes.
Resolved memory leak and assert error during
release of an ACE_Data_Block.
* tao/Transport.cpp
No need to set read write pointer correctly. ZIOP
is responsible for that.
* tests/ZIOP/client.cpp
Enabled all tests again
* tests/Bug_3553_Regression/Bug_3553_Regression_client.cpp
* tests/Bug_3553_Regression/Bug_3553_Regression_server.cpp
Reverted last changes. Compiler errors should be resolved.
Diffstat (limited to 'TAO/tao/ZIOP')
-rw-r--r-- | TAO/tao/ZIOP/ZIOP.cpp | 21 | ||||
-rw-r--r-- | TAO/tao/ZIOP/ZIOP.h | 2 |
2 files changed, 11 insertions, 12 deletions
diff --git a/TAO/tao/ZIOP/ZIOP.cpp b/TAO/tao/ZIOP/ZIOP.cpp index 73d18fc3b0e..c38a538ce42 100644 --- a/TAO/tao/ZIOP/ZIOP.cpp +++ b/TAO/tao/ZIOP/ZIOP.cpp @@ -124,12 +124,10 @@ TAO_ZIOP_Loader::decompress (Compression::Compressor_ptr compressor, return true; } -ACE_Data_Block * -TAO_ZIOP_Loader::decompress (ACE_Data_Block& db, TAO_Queued_Data& qd, +bool +TAO_ZIOP_Loader::decompress (ACE_Data_Block **db, TAO_Queued_Data& qd, TAO_ORB_Core& orb_core) { - ACE_Data_Block *db_ret = &db; - CORBA::Object_var compression_manager = orb_core.resolve_compression_manager(); @@ -143,8 +141,8 @@ TAO_ZIOP_Loader::decompress (ACE_Data_Block& db, TAO_Queued_Data& qd, size_t begin = qd.msg_block ()-> rd_ptr() - qd.msg_block ()->base (); char * initial_rd_ptr = qd.msg_block ()-> rd_ptr(); size_t const wr = qd.msg_block ()->wr_ptr () - qd.msg_block ()->base (); - - TAO_InputCDR cdr (db.duplicate (), + + TAO_InputCDR cdr ((*db), qd.msg_block ()->self_flags (), begin + TAO_GIOP_MESSAGE_HEADER_LEN, wr, @@ -169,7 +167,7 @@ TAO_ZIOP_Loader::decompress (ACE_Data_Block& db, TAO_Queued_Data& qd, mb.copy(qd.msg_block ()->base () + begin, TAO_GIOP_MESSAGE_HEADER_LEN); - if (mb.copy((char*)myout.get_buffer(true), + if (mb.copy((char*)myout.get_buffer(false), (size_t)data.original_length) != 0) ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT ("TAO - (%P|%t) - ") @@ -179,16 +177,17 @@ TAO_ZIOP_Loader::decompress (ACE_Data_Block& db, TAO_Queued_Data& qd, //change it into a GIOP message.. mb.base ()[0] = 0x47; ACE_CDR::mb_align (&mb); - db_ret = mb.data_block (); - return db_ret->duplicate (); + *db = mb.data_block ()->duplicate (); + ACE_Data_Block *db_org = qd.msg_block ()->replace_data_block (mb.data_block ()); + return true; } } else { - return 0; + return false; } - return db_ret; + return true; } CORBA::ULong diff --git a/TAO/tao/ZIOP/ZIOP.h b/TAO/tao/ZIOP/ZIOP.h index 418782b1c6a..f8639f3789e 100644 --- a/TAO/tao/ZIOP/ZIOP.h +++ b/TAO/tao/ZIOP/ZIOP.h @@ -47,7 +47,7 @@ public: /// Destructor virtual ~TAO_ZIOP_Loader (void); - virtual ACE_Data_Block * decompress (ACE_Data_Block& db, TAO_Queued_Data& qd, TAO_ORB_Core& orb_core); + virtual bool decompress (ACE_Data_Block **db, TAO_Queued_Data& qd, TAO_ORB_Core& orb_core); // Compress the @a stream. Starting point of the compression is rd_ptr() virtual bool marshal_data (TAO_OutputCDR& cdr, TAO_Stub& stub); |