diff options
Diffstat (limited to 'TAO/tao/decode.cpp')
-rw-r--r-- | TAO/tao/decode.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/TAO/tao/decode.cpp b/TAO/tao/decode.cpp index 5b56dc5cfa3..c0acae85692 100644 --- a/TAO/tao/decode.cpp +++ b/TAO/tao/decode.cpp @@ -839,15 +839,14 @@ TAO_Marshal_Union::decode (CORBA::TypeCode_ptr tc, if (env.exception () == 0) { // decode the discriminator value - retval = stream->decode (discrim_tc, data, data2, env); + discrim_val = base_union->_discriminant (); + retval = stream->decode (discrim_tc, discrim_val, data2, env); if (retval == CORBA::TypeCode::TRAVERSE_CONTINUE) { discrim_size_with_pad = tc->TAO_discrim_pad_size (env); if (env.exception () == 0) { - discrim_val = data; // save the pointer to the discriminator - // value // move the pointer to point to the actual value data = (char *) data + discrim_size_with_pad; data2 = (char *) data2 + discrim_size_with_pad; |