diff options
author | Marc Laukien <marc@zeroc.com> | 2001-09-18 03:29:48 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2001-09-18 03:29:48 +0000 |
commit | 1f0761d9fd4df501fb63b914f4ba4a5a621aee29 (patch) | |
tree | c5894af76d3d8e7717647ba2c0f1788ae98b4ed6 /cpp | |
parent | win fixes (diff) | |
download | ice-1f0761d9fd4df501fb63b914f4ba4a5a621aee29.tar.bz2 ice-1f0761d9fd4df501fb63b914f4ba4a5a621aee29.tar.xz ice-1f0761d9fd4df501fb63b914f4ba4a5a621aee29.zip |
fixes
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/include/Ice/Proxy.h | 10 | ||||
-rw-r--r-- | cpp/src/Ice/Proxy.cpp | 4 | ||||
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 1 |
3 files changed, 9 insertions, 6 deletions
diff --git a/cpp/include/Ice/Proxy.h b/cpp/include/Ice/Proxy.h index d81f0169fd4..662128f3fc0 100644 --- a/cpp/include/Ice/Proxy.h +++ b/cpp/include/Ice/Proxy.h @@ -77,18 +77,18 @@ protected: Object(); virtual ~Object(); + friend class ::IceInternal::ProxyFactory; ::IceInternal::Handle< ::IceDelegate::Ice::Object> __getDelegate(); virtual ::IceInternal::Handle< ::IceDelegateM::Ice::Object> __createDelegateM(); + ::IceInternal::Handle< ::IceDelegate::Ice::Object> _delegate; + private: void setup(const ::IceInternal::ReferencePtr&); ::IceInternal::ReferencePtr _reference; - ::IceInternal::Handle< ::IceDelegate::Ice::Object> _delegate; - - friend class ::IceInternal::ProxyFactory; }; } } @@ -108,11 +108,11 @@ protected: Object(); virtual ~Object(); + friend class ::IceProxy::Ice::Object; private: virtual void setup(const ::IceInternal::ReferencePtr&); - friend class ::IceProxy::Ice::Object; }; } } @@ -132,6 +132,7 @@ protected: Object(); virtual ~Object(); + friend class ::IceProxy::Ice::Object; const ::IceInternal::EmitterPtr& __emitter(); // const...& for performance const ::IceInternal::ReferencePtr& __reference(); // const...& for performance @@ -142,7 +143,6 @@ private: ::IceInternal::ReferencePtr _reference; virtual void setup(const ::IceInternal::ReferencePtr&); - friend class ::IceProxy::Ice::Object; }; } } diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp index a096a2a08cf..52fb90a671a 100644 --- a/cpp/src/Ice/Proxy.cpp +++ b/cpp/src/Ice/Proxy.cpp @@ -303,6 +303,7 @@ IceProxy::Ice::Object::__handleException(const LocalException& ex, int& cnt) JTCSyncT<JTCMutex> sync(*this); _delegate = 0; + static const int max = 1; // TODO: Make number of retries configurable try @@ -364,12 +365,13 @@ IceProxy::Ice::Object::__locationForward(const LocationForward& ex) { JTCSyncT<JTCMutex> sync(*this); + _delegate = 0; + if (_reference->identity != ex._prx->_reference->identity) { throw ReferenceIdentityException(__FILE__, __LINE__); } - _delegate = 0; _reference = _reference->changeEndpoints(ex._prx->_reference->endpoints); /* diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index a27b87f263f..28326387ee8 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -803,6 +803,7 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) } else { + C << nl << "_delegate = 0;"; C << nl << "__ex.raise();"; } C << eb; |