diff options
Diffstat (limited to 'TAO/tao/ORB_Core.cpp')
-rw-r--r-- | TAO/tao/ORB_Core.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp index a8235b9e5d0..f5450c6eac3 100644 --- a/TAO/tao/ORB_Core.cpp +++ b/TAO/tao/ORB_Core.cpp @@ -1620,6 +1620,9 @@ TAO_ORB_Core::create_object (TAO_Stub *stub) // when we use collocation! const TAO_MProfile &mprofile = stub->base_profiles (); + // @@ We should thow CORBA::NO_MEMORY in platforms with exceptions, + // but we are stuck in platforms without exceptions! + CORBA::Object_ptr x; { // @@ Ossama: maybe we need another lock for the table, to // reduce contention on the Static_Object_Lock below, if so @@ -1642,16 +1645,15 @@ TAO_ORB_Core::create_object (TAO_Stub *stub) TAO_Adapter_Registry *ar = other_core->adapter_registry (); - return ar->create_collocated_object (stub, - mprofile); + x = ar->create_collocated_object (stub, + mprofile); + + if (x != 0) + return x; } } } - // @@ We should thow CORBA::NO_MEMORY in platforms with exceptions, - // but we are stuck in platforms without exceptions! - CORBA::Object_ptr x; - // The constructor sets the proxy broker as the // Remote one. ACE_NEW_RETURN (x, |