diff --git a/core/base/inc/TNamed.h b/core/base/inc/TNamed.h index bdbb6c96ddfda59f2354d3d0e5c9d2475f663c3b..c695a4e728d2edd9e4dd653ec353b6b336ea5e07 100644 --- a/core/base/inc/TNamed.h +++ b/core/base/inc/TNamed.h @@ -38,7 +38,7 @@ public: TNamed(const TString &name, const TString &title) : fName(name), fTitle(title) { } TNamed(const TNamed &named); TNamed& operator=(const TNamed& rhs); - virtual ~TNamed() { } + virtual ~TNamed(); virtual void Clear(Option_t *option =""); virtual TObject *Clone(const char *newname="") const; virtual Int_t Compare(const TObject *obj) const; diff --git a/core/base/src/TNamed.cxx b/core/base/src/TNamed.cxx index 24c227bd5e2a76dc3bfae1f089e5c81e6aab7fd4..41b3cc6e5d9ec5b92cf762fb99831255b9ece503 100644 --- a/core/base/src/TNamed.cxx +++ b/core/base/src/TNamed.cxx @@ -36,6 +36,15 @@ TNamed::TNamed(const TNamed &named) : TObject(named),fName(named.fName),fTitle(n { } +//////////////////////////////////////////////////////////////////////////////// +/// TNamed destructor. + +TNamed::~TNamed() +{ + // Required since we overload TObject::Hash. + ROOT::CallRecursiveRemoveIfNeeded(*this); +} + //////////////////////////////////////////////////////////////////////////////// /// TNamed assignment operator.