diff --git a/pvDataApp/misc/StatusCreateFactory.cpp b/pvDataApp/misc/StatusCreateFactory.cpp index a87563a..80f5013 100644 --- a/pvDataApp/misc/StatusCreateFactory.cpp +++ b/pvDataApp/misc/StatusCreateFactory.cpp @@ -67,7 +67,7 @@ class StatusImpl : public Status totalConstruct++; } - ~StatusImpl() { + virtual ~StatusImpl() { Lock xx(globalMutex); totalDestruct++; } diff --git a/pvDataApp/misc/destroyable.h b/pvDataApp/misc/destroyable.h index 0f5b7ed..e709e67 100644 --- a/pvDataApp/misc/destroyable.h +++ b/pvDataApp/misc/destroyable.h @@ -20,11 +20,11 @@ namespace epics { namespace pvData { */ virtual void destroy() = 0; - private: + protected: /** - * Do not allow delete on this instance. + * Do not allow delete on this instance and derived classes, destroy() must be used instead. */ - //~Destroyable() {}; + virtual ~Destroyable() {}; }; }} diff --git a/pvDataApp/misc/status.h b/pvDataApp/misc/status.h index 0334acd..588e8d1 100644 --- a/pvDataApp/misc/status.h +++ b/pvDataApp/misc/status.h @@ -35,7 +35,8 @@ namespace epics { namespace pvData { */ class Status : public epics::pvData::Serializable { public: - + virtual ~Status() {}; + /** * Get status type. * @return status type, non-null.