diff options
Diffstat (limited to 'cpp/src/Ice/RequestHandlerFactory.cpp')
-rw-r--r-- | cpp/src/Ice/RequestHandlerFactory.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/cpp/src/Ice/RequestHandlerFactory.cpp b/cpp/src/Ice/RequestHandlerFactory.cpp index 8a69555b8a4..414d1001220 100644 --- a/cpp/src/Ice/RequestHandlerFactory.cpp +++ b/cpp/src/Ice/RequestHandlerFactory.cpp @@ -23,14 +23,14 @@ RequestHandlerFactory::RequestHandlerFactory(const InstancePtr& instance) : _ins } RequestHandlerPtr -IceInternal::RequestHandlerFactory::getRequestHandler(const RoutableReferencePtr& ref, const Ice::ObjectPrx& proxy) +IceInternal::RequestHandlerFactory::getRequestHandler(const RoutableReferencePtr& ref, const Ice::ObjectPrxPtr& proxy) { if(ref->getCollocationOptimized()) { Ice::ObjectAdapterPtr adapter = _instance->objectAdapterFactory()->findObjectAdapter(proxy); if(adapter) { - return proxy->__setRequestHandler(new CollocatedRequestHandler(ref, adapter)); + return proxy->__setRequestHandler(ICE_MAKE_SHARED(CollocatedRequestHandler, ref, adapter)); } } @@ -42,7 +42,7 @@ IceInternal::RequestHandlerFactory::getRequestHandler(const RoutableReferencePtr map<ReferencePtr, ConnectRequestHandlerPtr>::iterator p = _handlers.find(ref); if(p == _handlers.end()) { - handler = new ConnectRequestHandler(ref, proxy); + handler = ICE_MAKE_SHARED(ConnectRequestHandler, ref, proxy); _handlers.insert(make_pair(ref, handler)); connect = true; } @@ -53,12 +53,16 @@ IceInternal::RequestHandlerFactory::getRequestHandler(const RoutableReferencePtr } else { - handler = new ConnectRequestHandler(ref, proxy); + handler = ICE_MAKE_SHARED(ConnectRequestHandler, ref, proxy); connect = true; } if(connect) { +#ifdef ICE_CPP11_MAPPING + ref->getConnection(handler); +#else ref->getConnection(handler.get()); +#endif } return proxy->__setRequestHandler(handler->connect(proxy)); } |