28 ClassImp(TObjectRefSpy);
35 TObjectSpy::TObjectSpy(TObject *obj, Bool_t fixMustCleanupBit) :
36 TObject(), fObj(obj), fResetMustCleanupBit(kFALSE)
39 R__LOCKGUARD(gROOTMutex);
40 gROOT->GetListOfCleanups()->Add(
this);
42 if (fObj && !fObj->TestBit(kMustCleanup)) {
43 if (fixMustCleanupBit) {
44 fResetMustCleanupBit = kTRUE;
45 fObj->SetBit(kMustCleanup, kTRUE);
47 Error(
"TObjectSpy",
"spied object must have the kMustCleanup bit set");
55 TObjectSpy::~TObjectSpy()
57 if (fObj && fResetMustCleanupBit)
58 fObj->SetBit(kMustCleanup, kFALSE);
59 R__LOCKGUARD(gROOTMutex);
60 gROOT->GetListOfCleanups()->Remove(
this);
67 void TObjectSpy::RecursiveRemove(TObject *obj)
71 fResetMustCleanupBit = kFALSE;
78 void TObjectSpy::SetObject(TObject *obj, Bool_t fixMustCleanupBit)
80 if (fObj && fResetMustCleanupBit)
81 fObj->SetBit(kMustCleanup, kFALSE);
82 fResetMustCleanupBit = kFALSE;
86 if (fObj && !fObj->TestBit(kMustCleanup)) {
87 if (fixMustCleanupBit) {
88 fResetMustCleanupBit = kTRUE;
89 fObj->SetBit(kMustCleanup, kTRUE);
91 Error(
"TObjectSpy",
"spied object must have the kMustCleanup bit set");
102 TObjectRefSpy::TObjectRefSpy(TObject *&obj, Bool_t fixMustCleanupBit) :
103 fObj(obj), fResetMustCleanupBit(kFALSE)
106 R__LOCKGUARD(gROOTMutex);
107 gROOT->GetListOfCleanups()->Add(
this);
109 if (fObj && !fObj->TestBit(kMustCleanup)) {
110 if (fixMustCleanupBit) {
111 fResetMustCleanupBit = kTRUE;
112 fObj->SetBit(kMustCleanup, kTRUE);
114 Error(
"TObjectSpy",
"spied object must have the kMustCleanup bit set");
122 TObjectRefSpy::~TObjectRefSpy()
124 if (fObj && fResetMustCleanupBit)
125 fObj->SetBit(kMustCleanup, kFALSE);
126 R__LOCKGUARD(gROOTMutex);
127 gROOT->GetListOfCleanups()->Remove(
this);
134 void TObjectRefSpy::RecursiveRemove(TObject *obj)
138 fResetMustCleanupBit = kFALSE;