diff options
author | Benoit Foucher <benoit@zeroc.com> | 2014-06-05 20:49:26 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2014-06-05 20:49:26 +0200 |
commit | be5f41f8ffd74f2651b1db1a61badfd41f17a36d (patch) | |
tree | b94687eaeb0f0024be247ef07efe7541b7d813b2 /cpp/include/Ice/SlicedData.h | |
parent | Fixed ICE-5490: selector doesn't check for EPOLLERR on Linux (diff) | |
download | ice-be5f41f8ffd74f2651b1db1a61badfd41f17a36d.tar.bz2 ice-be5f41f8ffd74f2651b1db1a61badfd41f17a36d.tar.xz ice-be5f41f8ffd74f2651b1db1a61badfd41f17a36d.zip |
Fixed ICE-5499, new garbage collection support
Diffstat (limited to 'cpp/include/Ice/SlicedData.h')
-rw-r--r-- | cpp/include/Ice/SlicedData.h | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/cpp/include/Ice/SlicedData.h b/cpp/include/Ice/SlicedData.h index 0fb961a46e4..d08c4af067f 100644 --- a/cpp/include/Ice/SlicedData.h +++ b/cpp/include/Ice/SlicedData.h @@ -11,7 +11,7 @@ #define ICE_SLICED_DATA_H #include <Ice/SlicedDataF.h> -#include <Ice/Object.h> +#include <Ice/GCObject.h> namespace Ice { @@ -55,7 +55,7 @@ struct ICE_API SliceInfo : public ::IceUtil::Shared // // SlicedData holds the slices of unknown types. // -class ICE_API SlicedData : public ::IceInternal::GCShared +class ICE_API SlicedData : public ::IceUtil::Shared { public: @@ -63,26 +63,18 @@ public: const SliceInfoSeq slices; - // - // The internal methods below are necessary to support garbage collection - // of Ice objects. - // - - virtual void __gcReachable(IceInternal::GCCountMap&) const; - virtual void __gcClear(); + void __gcVisitMembers(IceInternal::GCVisitor&); void __decRefUnsafe() { --_ref; } - - void __addObject(IceInternal::GCCountMap&); }; // // Unknown sliced object holds instance of unknown type. // -class ICE_API UnknownSlicedObject : public Object, private IceInternal::GCShared +class ICE_API UnknownSlicedObject : virtual public Object, private IceInternal::GCObject { public: @@ -92,10 +84,7 @@ public: SlicedDataPtr getSlicedData() const; - virtual void __addObject(::IceInternal::GCCountMap&); - virtual bool __usesGC(); - virtual void __gcReachable(::IceInternal::GCCountMap&) const; - virtual void __gcClear(); + virtual void __gcVisitMembers(IceInternal::GCVisitor&); virtual void __write(::IceInternal::BasicStream*) const; virtual void __read(::IceInternal::BasicStream*); |