summaryrefslogtreecommitdiff
path: root/TAO/tao/Var_Size_Argument_T.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Var_Size_Argument_T.cpp')
-rw-r--r--TAO/tao/Var_Size_Argument_T.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/TAO/tao/Var_Size_Argument_T.cpp b/TAO/tao/Var_Size_Argument_T.cpp
index be6a022194c..1f062016779 100644
--- a/TAO/tao/Var_Size_Argument_T.cpp
+++ b/TAO/tao/Var_Size_Argument_T.cpp
@@ -78,14 +78,15 @@ template<typename S, typename S_out>
TAO::Out_Var_Size_Argument_T<S,S_out>::Out_Var_Size_Argument_T (S_out x)
: x_ (x.ptr ())
{
- ACE_NEW (this->x_,
- S);
}
template<typename S, typename S_out>
CORBA::Boolean
TAO::Out_Var_Size_Argument_T<S,S_out>::demarshal (TAO_InputCDR & cdr)
{
+ ACE_NEW_RETURN (this->x_,
+ S,
+ 0);
return cdr >> *this->x_;
}
@@ -94,14 +95,17 @@ TAO::Out_Var_Size_Argument_T<S,S_out>::demarshal (TAO_InputCDR & cdr)
template<typename S, typename S_var>
TAO::Ret_Var_Size_Argument_T<S,S_var>::Ret_Var_Size_Argument_T (void)
{
- ACE_NEW (this->x_.out (),
- S);
}
template<typename S, typename S_var>
CORBA::Boolean
TAO::Ret_Var_Size_Argument_T<S,S_var>::demarshal (TAO_InputCDR & cdr)
{
+ S * tmp = 0;
+ ACE_NEW_RETURN (tmp,
+ S,
+ 0);
+ this->x_ = tmp;
return cdr >> this->x_.inout ();
}