diff --git a/src/remoteClient/clientContextImpl.cpp b/src/remoteClient/clientContextImpl.cpp index db04760..b6d15b1 100644 --- a/src/remoteClient/clientContextImpl.cpp +++ b/src/remoteClient/clientContextImpl.cpp @@ -3327,7 +3327,7 @@ private: virtual ChannelProvider::shared_pointer getProvider() { - return m_context; + return m_context->external_from_this(); } // NOTE: synchronization guarantees that transport is non-0 and state == CONNECTED. @@ -3377,8 +3377,8 @@ private: return m_channelID; } public: - virtual ClientContextImpl::shared_pointer getContext() { - return m_context; + virtual ClientContextImpl* getContext() { + return m_context.get(); } virtual pvAccessID getSearchInstanceID() { diff --git a/src/remoteClient/pv/clientContextImpl.h b/src/remoteClient/pv/clientContextImpl.h index 45ed1f2..741599e 100644 --- a/src/remoteClient/pv/clientContextImpl.h +++ b/src/remoteClient/pv/clientContextImpl.h @@ -47,7 +47,7 @@ public: virtual void destroyChannel(bool force) = 0; virtual void connectionCompleted(pvAccessID sid/*, rights*/) = 0; virtual void createChannelFailed() = 0; - virtual std::tr1::shared_ptr getContext() = 0; + virtual ClientContextImpl* getContext() = 0; virtual void channelDestroyedOnServer() = 0; virtual pvAccessID getServerChannelID() = 0;