diff options
Diffstat (limited to 'cpp/src/Ice/Incoming.cpp')
-rw-r--r-- | cpp/src/Ice/Incoming.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/cpp/src/Ice/Incoming.cpp b/cpp/src/Ice/Incoming.cpp index 3e0d5d3761e..36f2c250faf 100644 --- a/cpp/src/Ice/Incoming.cpp +++ b/cpp/src/Ice/Incoming.cpp @@ -41,26 +41,26 @@ IceInternal::Incoming::invoke(Stream& is) _os.write(Byte(0)); ObjectPtr object = _adapter->identityToObject(identity); - ObjectLocatorPtr locator; ObjectPtr cookie; - if (object) - { - locator = _adapter->getObjectLocator(); - if (locator) - { - object = locator->locate(_adapter, identity, cookie); - } - } - - if(!object) - { - *(_os.b.begin() + statusPos) = static_cast<Byte>(DispatchObjectNotExist); - return; - } try { + if (!object) + { + locator = _adapter->getObjectLocator(); + if (locator) + { + object = locator->locate(_adapter, identity, cookie); + } + } + + if(!object) + { + *(_os.b.begin() + statusPos) = static_cast<Byte>(DispatchObjectNotExist); + return; + } + DispatchStatus status = object->__dispatch(*this, operation); if (status != DispatchOK && status != DispatchException && status != DispatchOperationNotExist) { |