diff options
Diffstat (limited to 'TAO/tao/DynStruct_i.cpp')
-rw-r--r-- | TAO/tao/DynStruct_i.cpp | 1185 |
1 files changed, 346 insertions, 839 deletions
diff --git a/TAO/tao/DynStruct_i.cpp b/TAO/tao/DynStruct_i.cpp index 03f3c94a4af..8e133933e40 100644 --- a/TAO/tao/DynStruct_i.cpp +++ b/TAO/tao/DynStruct_i.cpp @@ -28,64 +28,48 @@ TAO_DynStruct_i::TAO_DynStruct_i (const CORBA_Any& any) current_index_ (0), da_members_ (0) { - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - // The type will be correct if this constructor called from a - // factory function, but it could also be called by the user, - // so..... - CORBA::TCKind kind = TAO_DynAny_i::unalias (this->type_.in (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - - if (kind == CORBA::tk_struct) - { - CORBA::ULong numfields = - this->type_.in ()->member_count (ACE_TRY_ENV); - ACE_TRY_CHECK; + CORBA::Environment env; - // Resize the array. - this->da_members_.size (numfields); + // The type will be correct if this constructor called from a + // factory function, but it could also be called by the user, + // so..... + if (TAO_DynAny_i::unalias (this->type_.in (), + env) == CORBA::tk_struct) + { + CORBA::ULong numfields = + this->type_.in ()->member_count (env); - // Get the CDR stream of the argument. - ACE_Message_Block *mb = any._tao_get_cdr (); + // Resize the array. + this->da_members_.size (numfields); - TAO_InputCDR cdr (mb); + // Get the CDR stream of the argument. + ACE_Message_Block *mb = any._tao_get_cdr (); - for (CORBA::ULong i = 0; i < numfields; i++) - { - CORBA::TypeCode_ptr field_tc = - this->type_.in ()->member_type (i, - ACE_TRY_ENV); - ACE_TRY_CHECK; - - // This Any constructor is a TAO extension. - CORBA_Any field_any (field_tc, - 0, - cdr.start ()); - - // This recursive step will call the correct constructor - // based on the type of field_any. - this->da_members_[i] = - TAO_DynAny_i::create_dyn_any (field_any, - ACE_TRY_ENV); - ACE_TRY_CHECK; + TAO_InputCDR cdr (mb); - // Move to the next field in the CDR stream. - cdr.skip (field_tc); - } - } - else + for (CORBA::ULong i = 0; i < numfields; i++) { - ACE_THROW (CORBA_ORB_InconsistentTypeCode ()); + CORBA::TypeCode_ptr field_tc = + this->type_.in ()->member_type (i, + env); + + // This Any constructor is a TAO extension. + CORBA_Any field_any (field_tc, + 0, + cdr.start ()); + + // This recursive step will call the correct constructor + // based on the type of field_any. + this->da_members_[i] = + TAO_DynAny_i::create_dyn_any (field_any, + env); + + // Move to the next field in the CDR stream. + cdr.skip (field_tc); } } - ACE_CATCHANY - { - // do nothing - } - ACE_ENDTRY; - ACE_CHECK; + else + env.exception (new CORBA_ORB_InconsistentTypeCode); } TAO_DynStruct_i::TAO_DynStruct_i (CORBA_TypeCode_ptr tc) @@ -93,34 +77,23 @@ TAO_DynStruct_i::TAO_DynStruct_i (CORBA_TypeCode_ptr tc) current_index_ (0), da_members_ (0) { - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY + CORBA::Environment env; + + // Need to check if called by user. + if (TAO_DynAny_i::unalias (tc, env) == CORBA::tk_struct) { - // Need to check if called by user. - if (TAO_DynAny_i::unalias (tc, ACE_TRY_ENV) == CORBA::tk_struct) - { - CORBA::ULong numfields = tc->member_count (ACE_TRY_ENV); - ACE_TRY_CHECK; + CORBA::ULong numfields = tc->member_count (env); - // Resize the array. - this->da_members_.size (numfields); + // Resize the array. + this->da_members_.size (numfields); - for (CORBA::ULong i = 0; i < numfields; i++) + for (CORBA::ULong i = 0; i < numfields; i++) - // With a typecode arg, we just create the top level. - this->da_members_[i] = 0; - } - else - { - ACE_THROW (CORBA_ORB_InconsistentTypeCode ()); - } - } - ACE_CATCHANY - { - // do nothing + // With a typecode arg, we just create the top level. + this->da_members_[i] = 0; } - ACE_ENDTRY; - ACE_CHECK; + else + env.exception (new CORBA_ORB_InconsistentTypeCode); } TAO_DynStruct_i::~TAO_DynStruct_i (void) @@ -137,17 +110,11 @@ TAO_DynStruct_i::current_member_name (CORBA::Environment &) // Returns the unaliased TCKind. CORBA::TCKind -TAO_DynStruct_i::current_member_kind (CORBA::Environment& ACE_TRY_ENV) +TAO_DynStruct_i::current_member_kind (CORBA::Environment& env) { - CORBA::TypeCode_ptr tc = this->type_.in ()->member_type (this->current_index_, - ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA::tk_null); - - CORBA::TCKind retval = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA::tk_null); - - return retval; + return TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_, + env), + env); } CORBA::NameValuePairSeq* @@ -171,8 +138,6 @@ TAO_DynStruct_i::get_members (CORBA::Environment& ACE_TRY_ENV) CORBA::string_dup (this->type_.in ()->member_name (i)); CORBA::Any_var temp = this->da_members_[i]->to_any (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - (*members)[i].value = temp.in (); } @@ -181,7 +146,7 @@ TAO_DynStruct_i::get_members (CORBA::Environment& ACE_TRY_ENV) void TAO_DynStruct_i::set_members (const CORBA::NameValuePairSeq& value, - CORBA::Environment& ACE_TRY_ENV) + CORBA::Environment& env) { CORBA::ULong length = value.length (); @@ -191,35 +156,27 @@ TAO_DynStruct_i::set_members (const CORBA::NameValuePairSeq& value, for (CORBA::ULong i = 0; i < length; i++) { // Check for type and name match. - CORBA_TypeCode_ptr tc = this->type_.in ()->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; - - if (value[i].value.type ()->equal (tc) + if (value[i].value.type ()->equal (this->type_.in ()->member_type (i, + env)) && !ACE_OS::strcmp (value[i].id, this->type_.in ()->member_name (i))) { if (!CORBA::is_nil (this->da_members_[i].in ())) - { - this->da_members_[i]->destroy (ACE_TRY_ENV); - ACE_CHECK; - } + this->da_members_[i]->destroy (env); this->da_members_[i] = TAO_DynAny_i::create_dyn_any (value[i].value, - ACE_TRY_ENV); - ACE_CHECK; + env); } else { - ACE_THROW (CORBA_DynAny::InvalidSeq ()); + env.exception (new CORBA_DynAny::InvalidSeq); + break; } } } else - { - ACE_THROW (CORBA_DynAny::InvalidSeq ()); - } + env.exception (new CORBA_DynAny::InvalidSeq); } ////////////////////////////////////////////////////////////////////// @@ -227,56 +184,32 @@ TAO_DynStruct_i::set_members (const CORBA::NameValuePairSeq& value, void TAO_DynStruct_i::assign (CORBA_DynAny_ptr dyn_any, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { // *dyn_any->to_any raises Invalid if arg is bad. - CORBA::TypeCode_ptr tc = dyn_any->type (ACE_TRY_ENV); - ACE_CHECK; - - CORBA::Boolean equal = this->type_.in ()->equal (tc, - ACE_TRY_ENV); - ACE_CHECK; - - if (equal) - { - CORBA_Any_ptr any_ptr = dyn_any->to_any (ACE_TRY_ENV); - ACE_CHECK; - - this->from_any (*any_ptr, - ACE_TRY_ENV); - ACE_CHECK; - } + if (this->type_.in ()->equal (dyn_any->type (env), + env)) + this->from_any (*dyn_any->to_any (env), + env); else - { - ACE_THROW (CORBA_DynAny::Invalid ()); - } + env.exception (new CORBA_DynAny::Invalid); } CORBA_DynAny_ptr -TAO_DynStruct_i::copy (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::copy (CORBA::Environment &env) { - CORBA_Any_ptr a = this->to_any (ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA_DynAny::_nil ()); - - CORBA_DynAny_ptr retval = TAO_DynAny_i::create_dyn_any (*a, - ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA_DynAny::_nil ()); - - return retval; + CORBA_Any_ptr a = this->to_any (env); + return TAO_DynAny_i::create_dyn_any (*a, + env); } void -TAO_DynStruct_i::destroy (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::destroy (CORBA::Environment &env) { // Do a deep destroy for (CORBA::ULong i = 0; i < this->da_members_.size (); i++) - { - if (!CORBA::is_nil (this->da_members_[i].in ())) - { - this->da_members_[i]->destroy (ACE_TRY_ENV); - ACE_CHECK; - } - } + if (!CORBA::is_nil (this->da_members_[i].in ())) + this->da_members_[i]->destroy (env); // Free the top level delete this; @@ -284,13 +217,10 @@ TAO_DynStruct_i::destroy (CORBA::Environment &ACE_TRY_ENV) void TAO_DynStruct_i::from_any (const CORBA_Any& any, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::Boolean equal = this->type_.in ()->equal (any.type (), - ACE_TRY_ENV); - ACE_CHECK; - - if (equal) + if (this->type_.in ()->equal (any.type (), + env)) { // Get the CDR stream of the argument. ACE_Message_Block* mb = any._tao_get_cdr (); @@ -302,8 +232,7 @@ TAO_DynStruct_i::from_any (const CORBA_Any& any, { CORBA::TypeCode_ptr field_tc = this->type_.in ()->member_type (i, - ACE_TRY_ENV); - ACE_CHECK; + env); // This Any constructor is a TAO extension. CORBA_Any field_any (field_tc, @@ -311,24 +240,18 @@ TAO_DynStruct_i::from_any (const CORBA_Any& any, cdr.start ()); if (!CORBA::is_nil (this->da_members_[i].in ())) - { - this->da_members_[i]->destroy (ACE_TRY_ENV); - ACE_CHECK; - } + this->da_members_[i]->destroy (env); this->da_members_[i] = TAO_DynAny_i::create_dyn_any (field_any, - ACE_TRY_ENV); - ACE_CHECK; + env); // Move to the next field in the CDR stream. cdr.skip (field_tc); } } else - { - ACE_THROW (CORBA_DynAny::Invalid ()); - } + env.exception (new CORBA_DynAny::Invalid); } CORBA::Any_ptr @@ -343,18 +266,16 @@ TAO_DynStruct_i::to_any (CORBA::Environment& ACE_TRY_ENV) // Each component must have been initialied. if (!this->da_members_[i].in ()) { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - 0); + ACE_TRY_ENV.exception (new CORBA_DynAny::Invalid); + return 0; } CORBA_TypeCode_ptr field_tc = this->da_members_[i]->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); // Recursive step CORBA_Any_var field_any = this->da_members_[i]->to_any (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); ACE_Message_Block *field_mb = field_any->_tao_get_cdr (); @@ -363,23 +284,17 @@ TAO_DynStruct_i::to_any (CORBA::Environment& ACE_TRY_ENV) out_cdr.append (field_tc, &field_cdr, ACE_TRY_ENV); - ACE_CHECK_RETURN (0); } TAO_InputCDR in_cdr (out_cdr); CORBA_Any *retval; - - CORBA_TypeCode_ptr tc = this->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - ACE_NEW_THROW_EX (retval, - CORBA_Any (tc, + CORBA_Any (this->type (ACE_TRY_ENV), 0, in_cdr.start ()), CORBA::NO_MEMORY ()); ACE_CHECK_RETURN (0); - return retval; } @@ -393,21 +308,14 @@ TAO_DynStruct_i::type (CORBA::Environment &) // current_component will create the pointer and return it. CORBA_DynAny_ptr -TAO_DynStruct_i::current_component (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::current_component (CORBA::Environment &env) { if (!this->da_members_[this->current_index_].in ()) - { - CORBA_TypeCode_ptr tc = - this->type_.in ()->member_type (this->current_index_, - ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA_DynAny::_nil ()); - - CORBA_DynAny_ptr dp = TAO_DynAny_i::create_dyn_any (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA_DynAny::_nil ()); - - this->da_members_[this->current_index_] = dp; - } + this->da_members_[this->current_index_] = + TAO_DynAny_i::create_dyn_any + (this->type_.in ()->member_type (this->current_index_, + env), + env); return this->da_members_[this->current_index_].in (); } @@ -426,7 +334,7 @@ CORBA::Boolean TAO_DynStruct_i::seek (CORBA::Long slot, CORBA::Environment &) { - if (slot < 0 + if (slot < 0 || slot >= (CORBA::Long) this->da_members_.size ()) return 0; @@ -451,434 +359,258 @@ TAO_DynStruct_i::rewind (CORBA::Environment &) void TAO_DynStruct_i::insert_boolean (CORBA::Boolean value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_boolean) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_boolean) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_boolean (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_boolean (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_octet (CORBA::Octet value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_octet) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_octet) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_octet (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_octet (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_char (CORBA::Char value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_char) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_char) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_char (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_char (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_short (CORBA::Short value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_short) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_short) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_short (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_short (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_ushort (CORBA::UShort value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_ushort) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_ushort) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_ushort (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_ushort (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_long (CORBA::Long value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_long) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_long) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_long (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_long (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_ulong (CORBA::ULong value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_ulong) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_long) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_ulong (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_ulong (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_float (CORBA::Float value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_float) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_float) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_float (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_float (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_double (CORBA::Double value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_double) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_double) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_double (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_double (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_string (const char * value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_string) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_string) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_string (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_string (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_reference (CORBA::Object_ptr value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_objref) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_objref) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_reference (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_reference (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_typecode (CORBA::TypeCode_ptr value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_TypeCode) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_TypeCode) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_typecode (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_typecode (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_longlong (CORBA::LongLong value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_longlong) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_longlong) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_longlong (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_longlong (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_ulonglong (CORBA::ULongLong value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_ulonglong) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_ulonglong) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_ulonglong (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_ulonglong (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_wchar (CORBA::WChar value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_wchar) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_wchar) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_wchar (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_wchar (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } void TAO_DynStruct_i::insert_any (const CORBA::Any& value, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &env) { - CORBA::TCKind kind = - TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), - ACE_TRY_ENV); - ACE_CHECK; - - if (kind == CORBA::tk_any) + if (TAO_DynAny_i::unalias (this->type_.in ()->member_type (this->current_index_), + env) + == CORBA::tk_any) { - CORBA_DynAny_ptr dp = this->current_component (ACE_TRY_ENV); - ACE_CHECK; - - dp->insert_any (value, - ACE_TRY_ENV); - ACE_CHECK; - - this->next (ACE_TRY_ENV); - ACE_CHECK; + this->current_component (env)->insert_any (value, + env); + this->next (env); } else - { - ACE_THROW (CORBA_DynAny::InvalidValue ()); - } + env.exception (new CORBA_DynAny::InvalidValue); } // Get functions @@ -888,85 +620,57 @@ TAO_DynStruct_i::insert_any (const CORBA::Any& value, // courteous thing to do. CORBA::Boolean -TAO_DynStruct_i::get_boolean (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_boolean (CORBA::Environment &env) { - CORBA::Boolean val = 0; + CORBA::Boolean val = 0;; CORBA_DynAny_ptr dp = this->da_members_[this->current_index_].in (); if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_boolean) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_boolean) { - val = dp->get_boolean (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_boolean (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::Octet -TAO_DynStruct_i::get_octet (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_octet (CORBA::Environment &env) { CORBA::Octet val = 0; - CORBA_DynAny_ptr dp = + CORBA_DynAny_ptr dp = this->da_members_[this->current_index_].in (); if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_octet) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_octet) { - val = dp->get_octet (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_octet (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::Char -TAO_DynStruct_i::get_char (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_char (CORBA::Environment &env) { CORBA::Char val = 0; CORBA_DynAny_ptr dp = @@ -974,38 +678,24 @@ TAO_DynStruct_i::get_char (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_char) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_char) { - val = dp->get_char (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_char (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::Short -TAO_DynStruct_i::get_short (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_short (CORBA::Environment &env) { CORBA::Short val = 0; CORBA_DynAny_ptr dp = @@ -1013,38 +703,24 @@ TAO_DynStruct_i::get_short (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_short) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_short) { - val = dp->get_short (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_short (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::UShort -TAO_DynStruct_i::get_ushort (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_ushort (CORBA::Environment &env) { CORBA::UShort val = 0; CORBA_DynAny_ptr dp = @@ -1052,38 +728,24 @@ TAO_DynStruct_i::get_ushort (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_ushort) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_ushort) { - val = dp->get_ushort (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_ushort (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::Long -TAO_DynStruct_i::get_long (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_long (CORBA::Environment &env) { CORBA::Long val = 0; CORBA_DynAny_ptr dp = @@ -1091,38 +753,24 @@ TAO_DynStruct_i::get_long (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_long) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_long) { - val = dp->get_long (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_long (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::ULong -TAO_DynStruct_i::get_ulong (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_ulong (CORBA::Environment &env) { CORBA::ULong val = 0; CORBA_DynAny_ptr dp = @@ -1130,38 +778,24 @@ TAO_DynStruct_i::get_ulong (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_ulong) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_ulong) { - val = dp->get_ulong (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_ulong (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::Float -TAO_DynStruct_i::get_float (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_float (CORBA::Environment &env) { CORBA::Float val = 0; CORBA_DynAny_ptr dp = @@ -1169,38 +803,24 @@ TAO_DynStruct_i::get_float (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_float) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_float) { - val = dp->get_float (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_float (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::Double -TAO_DynStruct_i::get_double (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_double (CORBA::Environment &env) { CORBA::Double val = 0; CORBA_DynAny_ptr dp = @@ -1208,38 +828,24 @@ TAO_DynStruct_i::get_double (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_double) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_double) { - val = dp->get_double (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_double (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } char * -TAO_DynStruct_i::get_string (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_string (CORBA::Environment &env) { CORBA::Char *val = 0; CORBA_DynAny_ptr dp = @@ -1247,38 +853,24 @@ TAO_DynStruct_i::get_string (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_string) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_string) { - val = dp->get_string (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_string (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::Object_ptr -TAO_DynStruct_i::get_reference (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_reference (CORBA::Environment &env) { CORBA_Object_ptr val = 0; CORBA_DynAny_ptr dp = @@ -1286,38 +878,24 @@ TAO_DynStruct_i::get_reference (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_objref) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_objref) { - val = dp->get_reference (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_reference (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::TypeCode_ptr -TAO_DynStruct_i::get_typecode (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_typecode (CORBA::Environment &env) { CORBA_TypeCode_ptr val = 0; CORBA_DynAny_ptr dp = @@ -1325,81 +903,52 @@ TAO_DynStruct_i::get_typecode (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_TypeCode) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_TypeCode) { - val = dp->get_typecode (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_typecode (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::LongLong -TAO_DynStruct_i::get_longlong (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_longlong (CORBA::Environment &env) { #if defined (ACE_LACKS_LONGLONG_T) CORBA::LongLong val = {0, 0}; #else /* ! ACE_LACKS_LONGLONG_T */ CORBA::LongLong val = 0; #endif /* ! ACE_LACKS_LONGLONG_T */ - CORBA_DynAny_ptr dp = this->da_members_[this->current_index_].in (); if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (val); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (val); - - if (kind == CORBA::tk_longlong) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_longlong) { - val = dp->get_longlong (ACE_TRY_ENV); - ACE_CHECK_RETURN (val); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (val); + val = dp->get_longlong (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::ULongLong -TAO_DynStruct_i::get_ulonglong (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_ulonglong (CORBA::Environment &env) { CORBA::ULongLong val = 0; CORBA_DynAny_ptr dp = @@ -1407,38 +956,24 @@ TAO_DynStruct_i::get_ulonglong (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_ulonglong) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_ulonglong) { - val = dp->get_ulonglong (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_ulonglong (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::WChar -TAO_DynStruct_i::get_wchar (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_wchar (CORBA::Environment &env) { CORBA::WChar val = 0; CORBA_DynAny_ptr dp = @@ -1446,38 +981,24 @@ TAO_DynStruct_i::get_wchar (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_wchar) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_wchar) { - val = dp->get_wchar (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_wchar (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } CORBA::Any_ptr -TAO_DynStruct_i::get_any (CORBA::Environment &ACE_TRY_ENV) +TAO_DynStruct_i::get_any (CORBA::Environment &env) { CORBA_Any_ptr val = 0; CORBA_DynAny_ptr dp = @@ -1485,32 +1006,18 @@ TAO_DynStruct_i::get_any (CORBA::Environment &ACE_TRY_ENV) if (dp) { - CORBA_TypeCode_ptr tc = dp->type (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - CORBA::TCKind kind = TAO_DynAny_i::unalias (tc, - ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - if (kind == CORBA::tk_any) + if (TAO_DynAny_i::unalias (dp->type (env), + env) + == CORBA::tk_any) { - val = dp->get_any (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); - - this->next (ACE_TRY_ENV); - ACE_CHECK_RETURN (0); + val = dp->get_any (env); + this->next (env); } else - { - ACE_THROW_RETURN (CORBA_DynAny::TypeMismatch (), - val); - } + env.exception (new CORBA_DynAny::TypeMismatch); } else - { - ACE_THROW_RETURN (CORBA_DynAny::Invalid (), - val); - } + env.exception (new CORBA_DynAny::Invalid); return val; } |