summaryrefslogtreecommitdiff
path: root/TAO/tao/DynamicInterface/DII_Arguments.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/DynamicInterface/DII_Arguments.cpp')
-rw-r--r--TAO/tao/DynamicInterface/DII_Arguments.cpp29
1 files changed, 19 insertions, 10 deletions
diff --git a/TAO/tao/DynamicInterface/DII_Arguments.cpp b/TAO/tao/DynamicInterface/DII_Arguments.cpp
index 210626bc3a2..18f9ca7e9d8 100644
--- a/TAO/tao/DynamicInterface/DII_Arguments.cpp
+++ b/TAO/tao/DynamicInterface/DII_Arguments.cpp
@@ -22,7 +22,8 @@ namespace TAO
CORBA::Boolean
NamedValue_Argument::demarshal (TAO_InputCDR &cdr)
{
- ACE_TRY_NEW_ENV
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
{
if (this->x_ !=0 && this->x_->value ()->impl ())
{
@@ -36,6 +37,7 @@ namespace TAO
return 0;
}
ACE_ENDTRY;
+ ACE_CHECK_RETURN (false);
this->byte_order_ = cdr.byte_order ();
@@ -53,7 +55,8 @@ namespace TAO
CORBA::Boolean
NVList_Argument::marshal (TAO_OutputCDR &cdr)
{
- ACE_TRY_NEW_ENV
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
{
this->x_->_tao_encode (cdr,
CORBA::ARG_IN | CORBA::ARG_INOUT
@@ -65,6 +68,7 @@ namespace TAO
return 0;
}
ACE_ENDTRY;
+ ACE_CHECK_RETURN (false);
return 1;
}
@@ -73,8 +77,8 @@ namespace TAO
NVList_Argument::demarshal (TAO_InputCDR &cdr)
{
-
- ACE_TRY_NEW_ENV
+ ACE_DECLARE_NEW_CORBA_ENV;
+ ACE_TRY
{
// Now, get all the "return", "out", and "inout" parameters
// from the response message body ... return parameter is
@@ -94,35 +98,40 @@ namespace TAO
return 0;
}
ACE_ENDTRY;
+ ACE_CHECK_RETURN (false);
return 1;
}
void
- NVList_Argument::interceptor_paramlist (Dynamic::ParameterList *list)
+ NVList_Argument::interceptor_paramlist (Dynamic::ParameterList *lst)
{
const CORBA::ULong len = this->x_->count ();
- list->length (len);
+ lst->length (len);
for (CORBA::ULong i = 0; i < len; ++i)
{
- (*list)[i].argument <<= *this->x_->item (i)->value ();
+ if (!this->x_->item (i)->value ())
+ return;
+
+ (*lst)[i].argument.replace (
+ this->x_->item (i)->value ()->impl ());
switch (this->x_->item (i)->flags ())
{
case CORBA::ARG_IN:
{
- (*list)[i].mode = CORBA::PARAM_IN;
+ (*lst)[i].mode = CORBA::PARAM_IN;
break;
}
case CORBA::ARG_INOUT:
{
- (*list)[i].mode = CORBA::PARAM_INOUT;
+ (*lst)[i].mode = CORBA::PARAM_INOUT;
break;
}
case CORBA::ARG_OUT:
{
- (*list)[i].mode = CORBA::PARAM_OUT;
+ (*lst)[i].mode = CORBA::PARAM_OUT;
break;
}
default: