diff options
Diffstat (limited to 'TAO/tao/GIOP_Message_Generator_Parser_12.cpp')
-rw-r--r-- | TAO/tao/GIOP_Message_Generator_Parser_12.cpp | 59 |
1 files changed, 27 insertions, 32 deletions
diff --git a/TAO/tao/GIOP_Message_Generator_Parser_12.cpp b/TAO/tao/GIOP_Message_Generator_Parser_12.cpp index b8fdb450584..26fceb041dc 100644 --- a/TAO/tao/GIOP_Message_Generator_Parser_12.cpp +++ b/TAO/tao/GIOP_Message_Generator_Parser_12.cpp @@ -1,31 +1,29 @@ // $Id$ -#include "GIOP_Message_Generator_Parser_12.h" -#include "GIOP_Utils.h" -#include "GIOP_Message_State.h" - -#include "GIOP_Message_Locate_Header.h" - -#include "operation_details.h" -#include "CDR.h" -#include "Any.h" -#include "debug.h" -#include "OctetSeqC.h" -#include "Pluggable_Messaging_Utils.h" -#include "TAO_Server_Request.h" -#include "TAOC.h" -#include "Service_Context.h" -#include "Pluggable.h" -#include "ORB_Core.h" +#include "tao/GIOP_Message_Generator_Parser_12.h" +#include "tao/GIOP_Utils.h" +#include "tao/GIOP_Message_State.h" + +#include "tao/GIOP_Message_Locate_Header.h" + +#include "tao/operation_details.h" +#include "tao/CDR.h" +#include "tao/Any.h" +#include "tao/debug.h" +#include "tao/OctetSeqC.h" +#include "tao/Pluggable_Messaging_Utils.h" +#include "tao/TAO_Server_Request.h" +#include "tao/TAOC.h" +#include "tao/Service_Context.h" +#include "tao/Pluggable.h" +#include "tao/ORB_Core.h" #include "Transport.h" #if !defined (__ACE_INLINE__) -# include "GIOP_Message_Generator_Parser_12.inl" +# include "tao/GIOP_Message_Generator_Parser_12.inl" #endif /* __ACE_INLINE__ */ -ACE_RCSID (tao, - GIOP_Message_Gen_Parser_12, - "$Id$") +ACE_RCSID(tao, GIOP_Message_Gen_Parser_12, "$Id$") // This is used by GIOP1.2. This is to align the message body on a // 8-octet boundary. This is declared static so that it is in file @@ -308,6 +306,8 @@ TAO_GIOP_Message_Generator_Parser_12::parse_request_header ( } } + ACE_CString operation_name; + if (input.char_translator () == 0) { CORBA::ULong length = 0; @@ -318,13 +318,10 @@ TAO_GIOP_Message_Generator_Parser_12::parse_request_header ( // Do not include NULL character at the end. // @@ This is not getting demarshaled using the codeset // translators! - - // Notice that there are no memory allocations involved - // here! - - request.operation (input.rd_ptr (), - length - 1, - 0 /* TAO_ServerRequest does NOT own string */); + operation_name.set (input.rd_ptr (), + length - 1, + 0); + request.operation (operation_name); hdr_status = input.skip_bytes (length); } } @@ -337,10 +334,8 @@ TAO_GIOP_Message_Generator_Parser_12::parse_request_header ( // ISO8859-1. CORBA::String_var tmp; hdr_status = hdr_status && input.read_string (tmp.inout ()); - - request.operation (tmp._retn (), - 0, - 1 /* TAO_ServerRequest owns string */); + operation_name.set (tmp._retn (), 1); + request.operation (operation_name); } // Tear out the service context ... we currently ignore it, but it |