diff options
author | elliott_c <ocielliottc@users.noreply.github.com> | 2003-03-05 16:24:01 +0000 |
---|---|---|
committer | elliott_c <ocielliottc@users.noreply.github.com> | 2003-03-05 16:24:01 +0000 |
commit | ac0423dfb651ac6865663a328484e55f0e6f2c10 (patch) | |
tree | 452876efb3b4815285e37cc7ab2139e2985b1906 | |
parent | 54ba4dbbd9cc328f0f8d97d4f50ca9f2a5145747 (diff) | |
download | ATCD-ac0423dfb651ac6865663a328484e55f0e6f2c10.tar.gz |
ChangeLogTag: Wed Mar 5 10:21:54 2003 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r-- | TAO/ChangeLog | 26 | ||||
-rw-r--r-- | TAO/tao/GIOP_Message_Lite.cpp | 14 |
2 files changed, 29 insertions, 11 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 27e3f135b62..91fae7747cd 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,29 +1,37 @@ +Wed Mar 5 10:21:54 2003 Chad Elliott <elliott_c@ociweb.com> + + * tao/GIOP_Message_Lite.cpp (parse_incoming_messages): + + When copying out the the message size, transfer the bytes into + a stack allocated character buffer to avoid bus errors on sparc + hardware. + Wed Mar 5 09:41:55 2003 Phil Mesnier <mesnier_p@ociweb.com> - * tao/Makefile.bor (OBJFILES): + * tao/Makefile.bor (OBJFILES): - Fixed typo in file list. + Fixed typo in file list. Wed Mar 5 09:07:02 2003 Phil Mesnier <mesnier_p@ociweb.com> - * tao/Transport.cpp (assign_translators): + * tao/Transport.cpp (assign_translators): - Removed the ACE_INLINE from the function + Removed the ACE_INLINE from the function Wed Mar 5 08:54:53 CST 2003 Pradeep Gore <pradeep@oomworks.com> - * orbsvcs/Notify_Service/NT_Notify_Service.cpp: - Corrected the changed service driver name. + * orbsvcs/Notify_Service/NT_Notify_Service.cpp: + Corrected the changed service driver name. Wed Mar 5 06:14:34 2003 Phil Mesnier <mesnier_p@ociweb.com> - * tao/Makefile.bor (OBJFILES): + * tao/Makefile.bor (OBJFILES): - Added Codeset related files to makefile. + Added Codeset related files to makefile. Wed Mar 5 00:01:09 2003 Phil Mesnier <mesnier_p@ociweb.com> - * TAO_IDL/util/utl_global.cpp (validate_included_idl_files): + * TAO_IDL/util/utl_global.cpp (validate_included_idl_files): Swapped the order of parameters to passed to realpath, which is the non-windows function used for canonizing a path. diff --git a/TAO/tao/GIOP_Message_Lite.cpp b/TAO/tao/GIOP_Message_Lite.cpp index 49d7f732cfb..351108f2feb 100644 --- a/TAO/tao/GIOP_Message_Lite.cpp +++ b/TAO/tao/GIOP_Message_Lite.cpp @@ -242,7 +242,17 @@ int TAO_GIOP_Message_Lite::parse_incoming_messages (ACE_Message_Block &block) { // Get the read pointer - char *buf = block.rd_ptr (); + char *rd_ptr = block.rd_ptr (); + + // We dont need to do this sort of copy. But some compilers (read it + // as solaris ones) have a problem in deferencing from the + // reinterpret_cast pointer of the <rd_ptr>, as the <rd_ptr> can be + // on stack. So let us go ahead with this copying... + char buf [4]; + buf[0] = *rd_ptr; + buf[1] = *(rd_ptr + 1); + buf[2] = *(rd_ptr + 2); + buf[3] = *(rd_ptr + 3); CORBA::ULong x = 0; #if !defined (ACE_DISABLE_SWAP_ON_READ) @@ -261,7 +271,7 @@ TAO_GIOP_Message_Lite::parse_incoming_messages (ACE_Message_Block &block) this->message_size_ = x; // Get the message type. - this->message_type_ = buf[TAO_GIOP_LITE_MESSAGE_TYPE_OFFSET]; + this->message_type_ = rd_ptr[TAO_GIOP_LITE_MESSAGE_TYPE_OFFSET]; return 0; } |