summaryrefslogtreecommitdiff
path: root/TAO/tao
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-07-02 20:12:18 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-07-02 20:12:18 +0000
commit73702a7343694a9271ff22bbb6aff36e72d74d0d (patch)
tree4523b64d1b986a95f045a6b8c844a8f2acfde852 /TAO/tao
parent27847df8de460b35cba30a3560ff1ac5a0968a50 (diff)
downloadATCD-73702a7343694a9271ff22bbb6aff36e72d74d0d.tar.gz
ChangeLogTag: Tue Jul 2 14:57:27 2002 Jeff Parsons <parsons@cs.wustl.edu>
Diffstat (limited to 'TAO/tao')
-rw-r--r--TAO/tao/Any.cpp15
-rw-r--r--TAO/tao/append.cpp5
-rw-r--r--TAO/tao/skip.cpp2
3 files changed, 16 insertions, 6 deletions
diff --git a/TAO/tao/Any.cpp b/TAO/tao/Any.cpp
index 2c98d29d0ba..962fa15d5d4 100644
--- a/TAO/tao/Any.cpp
+++ b/TAO/tao/Any.cpp
@@ -1793,11 +1793,18 @@ operator<< (TAO_OutputCDR& cdr,
{
TAO_InputCDR input (x._tao_get_cdr (),
x._tao_byte_order ());
- TAO_Marshal_Object::perform_append (tc.in (),
- &input,
- &cdr
- ACE_ENV_ARG_PARAMETER);
+
+ CORBA::TypeCode::traverse_status status =
+ TAO_Marshal_Object::perform_append (tc.in (),
+ &input,
+ &cdr
+ ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
+
+ if (status != CORBA::TypeCode::TRAVERSE_CONTINUE)
+ {
+ return 0;
+ }
}
ACE_CATCH (CORBA_Exception, ex)
{
diff --git a/TAO/tao/append.cpp b/TAO/tao/append.cpp
index 8979afd5cc1..cefbf980b50 100644
--- a/TAO/tao/append.cpp
+++ b/TAO/tao/append.cpp
@@ -594,7 +594,10 @@ TAO_Marshal_Union::append (CORBA::TypeCode_ptr tc,
ACE_ENV_ARG_PARAMETER);
}
- return CORBA::TypeCode::TRAVERSE_STOP;
+ // If we're here, we have an implicit default case, and we
+ // should just return without appending anything, since no
+ // union member was marshaled in the first place.
+ return CORBA::TypeCode::TRAVERSE_CONTINUE;
}
// If we found the member successfully then just use that one...
diff --git a/TAO/tao/skip.cpp b/TAO/tao/skip.cpp
index e05a686a8f7..d10a9f4526e 100644
--- a/TAO/tao/skip.cpp
+++ b/TAO/tao/skip.cpp
@@ -544,7 +544,7 @@ TAO_Marshal_Union::skip (CORBA::TypeCode_ptr tc,
}
// If we're here, we have an implicit default case, and we
- // should just return without demarshaling anything, since no
+ // should just return without skipping anything, since no
// union member was marshaled in the first place.
return CORBA::TypeCode::TRAVERSE_CONTINUE;
}