41 gROOT->GetListOfCleanups()->Add(
this);
44 if (fixMustCleanupBit) {
45 fResetMustCleanupBit = kTRUE;
46 fObj->SetBit(kMustCleanup, kTRUE);
48 Error(
"TObjectSpy",
"spied object must have the kMustCleanup bit set");
61 gROOT->GetListOfCleanups()->Remove(
this);
88 if (fixMustCleanupBit) {
92 Error(
"TObjectSpy",
"spied object must have the kMustCleanup bit set");
108 gROOT->GetListOfCleanups()->Add(
this);
111 if (fixMustCleanupBit) {
112 fResetMustCleanupBit = kTRUE;
113 fObj->SetBit(kMustCleanup, kTRUE);
115 Error(
"TObjectSpy",
"spied object must have the kMustCleanup bit set");
128 gROOT->GetListOfCleanups()->Remove(
this);
externTVirtualMutex * gROOTMutex
#define R__LOCKGUARD(mutex)
TObjectRefSpy(const TObjectRefSpy &s)=delete
void RecursiveRemove(TObject *obj) override
Sets the object pointer to zero if the object is deleted in the RecursiveRemove() operation.
virtual ~TObjectRefSpy()
Cleanup.
Bool_t fResetMustCleanupBit
Monitors objects for deletion and reflects the deletion by reverting the internal pointer to zero.
Bool_t fResetMustCleanupBit
void RecursiveRemove(TObject *obj) override
Sets the object pointer to zero if the object is deleted in the RecursiveRemove() operation.
virtual ~TObjectSpy()
Cleanup.
TObjectSpy(const TObjectSpy &s)=delete
void SetObject(TObject *obj, Bool_t fixMustCleanupBit=kTRUE)
Set obj as the spy target.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
TObject()
TObject constructor.
@ kMustCleanup
if object destructor must call RecursiveRemove()