diff options
author | mcorino <mcorino@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-11-20 15:37:01 +0000 |
---|---|---|
committer | mcorino <mcorino@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-11-20 15:37:01 +0000 |
commit | e47c37ef7a82ef99e7cceadaecd1c6ca4c64bc7a (patch) | |
tree | 4de86c67e0e7c0304d12379d344a5de0213d6ef3 /TAO/tao/Valuetype | |
parent | 58eb4a57d527f58bd272b7599344b4fb8e14f86b (diff) | |
download | ATCD-e47c37ef7a82ef99e7cceadaecd1c6ca4c64bc7a.tar.gz |
Sat Nov 20 15:34:50 UTC 2010 Martin Corino <corino_m@remedy.nl>
* tao/Valuetype/AbstractBase.cpp:
Fixed missing support for extraction of null object ref for
abstract interface.
Diffstat (limited to 'TAO/tao/Valuetype')
-rw-r--r-- | TAO/tao/Valuetype/AbstractBase.cpp | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/TAO/tao/Valuetype/AbstractBase.cpp b/TAO/tao/Valuetype/AbstractBase.cpp index 147eb54a1f3..12e6b91aa3d 100644 --- a/TAO/tao/Valuetype/AbstractBase.cpp +++ b/TAO/tao/Valuetype/AbstractBase.cpp @@ -338,28 +338,33 @@ operator>> (TAO_InputCDR &strm, CORBA::AbstractBase_ptr &abs) if (strm >> generic_objref.inout ()) { - TAO_Stub *concrete_stubobj = generic_objref->_stubobj (); - - CORBA::Boolean const stores_orb = - ! CORBA::is_nil (concrete_stubobj->servant_orb_var ().in ()); - - if (stores_orb) + // nil object reference or not + if (!CORBA::is_nil (generic_objref.in ())) { - orb_core = - concrete_stubobj->servant_orb_var ()->orb_core (); + // not nil + TAO_Stub *concrete_stubobj = generic_objref->_stubobj (); + + CORBA::Boolean const stores_orb = + ! CORBA::is_nil (concrete_stubobj->servant_orb_var ().in ()); + + if (stores_orb) + { + orb_core = + concrete_stubobj->servant_orb_var ()->orb_core (); + } + + CORBA::Boolean const collocated = + orb_core != 0 + && orb_core->optimize_collocation_objects () + && generic_objref->_is_collocated (); + + ACE_NEW_RETURN (abs, + CORBA::AbstractBase ( + concrete_stubobj, + collocated, + generic_objref->_servant ()), + false); } - - CORBA::Boolean const collocated = - orb_core != 0 - && orb_core->optimize_collocation_objects () - && generic_objref->_is_collocated (); - - ACE_NEW_RETURN (abs, - CORBA::AbstractBase ( - concrete_stubobj, - collocated, - generic_objref->_servant ()), - false); return true; } } |