29#if !defined(WIN32) && !defined(__MWERKS__) && !defined(R__SOLARIS) 
   59#if defined(__clang__) || defined (__GNUC__) 
   60# define ATTRIBUTE_NO_SANITIZE_ADDRESS __attribute__((no_sanitize_address)) 
   62# define ATTRIBUTE_NO_SANITIZE_ADDRESS 
   87      Error(
"CheckingDeleteSideEffects",
 
   88            "fUniqueID is not as expected, we got 0x%.8x instead of 0x%.8x",
 
   92      Error(
"CheckingDeleteSideEffects",
 
   93            "fBits is not as expected, we got 0x%.8x instead of 0x%.8x",
 
   97      unsigned char *
oc = 
reinterpret_cast<unsigned char *
>(o); 
 
   98      unsigned char references[
sizeof(
TObject)];
 
  108              "DEBUG: Checking before and after delete the content of a TObject with uniqueID 0x21\n");
 
  109      for(
size_t i = 0; i < 
sizeof(
TObject); i += 4) {
 
  110        fprintf(
stderr, 
"DEBUG: 0x%.8x vs 0x%.8x\n", *(
int*)(references +i), *(
int*)(
oc + i));
 
  120   if ( *
o_fbits != 0x01000000 ) {
 
 
  187      gROOT->MakeDefCanvas();
 
  189   if (!
gPad->IsEditable()) 
return;
 
  191   gPad->GetListOfPrimitives()->Add(
this,
option);
 
 
  209   return IsA()->GetName();
 
 
  229     return gROOT->CloneObject(
this);
 
 
  425   if (!
gPad) 
return "";
 
  428   while (
auto obj = next()) {
 
 
  441   return IsA()->GetName();
 
 
  470   if (!
gPad) 
return (
char*)
"";
 
  471   static char info[64];
 
 
  485   return IsA()->GetTitle();
 
 
  518   const void *ptr = 
this;
 
 
  527   return IsA()->InheritsFrom(classname);
 
 
  535   return IsA()->InheritsFrom(cl);
 
 
  577   std::cout <<
"OBJ: " << 
IsA()->GetName() << 
"\t" << 
GetName() << 
"\t" << 
GetTitle() << 
" : ";
 
  580      std::cout <<
" at: "<< 
this ;
 
  582   std::cout << std::endl;
 
 
  620   if (
this == 
gPad->GetListOfPrimitives()->Last()) 
return;
 
  623   while (
auto obj = next())
 
  626         gPad->GetListOfPrimitives()->Remove((
TObject*)
this);
 
  627         gPad->GetListOfPrimitives()->AddLast(
this, opt.
Data());
 
 
  638   std::cout <<
"OBJ: " << 
IsA()->GetName() << 
"\t" << 
GetName() << 
"\t" << 
GetTitle() << std::endl;
 
 
  715      out.open(
fname.Data(), std::ios::out);
 
  717         Error(
"SaveAs", 
"cannot open file: %s", 
fname.Data());
 
  720      ((
TObject*)
this)->SavePrimitive(out,
"cc");
 
  722      Info(
"SaveAs", 
"cc file: %s has been generated", 
fname.Data());
 
  734   out.open(
fname.Data(), std::ios::out);
 
  736      Error(
"SaveAs", 
"cannot open file: %s", 
fname.Data());
 
  739   out <<
"{"<<std::endl;
 
  740   out <<
"//========= Macro generated from object: "<<
GetName()<<
"/"<<
GetTitle()<<std::endl;
 
  741   out <<
"//========= by ROOT version"<<
gROOT->GetVersion()<<std::endl;
 
  743   out <<
"}"<<std::endl;
 
  745   Info(
"SaveAs", 
"C++ Macro file: %s has been generated", 
fname.Data());
 
 
  754       <<
". You must implement " << 
ClassName() << 
"::SavePrimitive" << std::endl;
 
 
  769   delete gPad->FindObject(
"Tframe");
 
  770   while (
auto obj = next())
 
 
  872   Error(
"Write",
"The current directory (gDirectory) is null. The object (%s) has not been written.",
objname);
 
 
  890   if (
IsA()->CanIgnoreTObjectStreamer()) 
return;
 
  892   if (
R__b.IsReading()) {
 
  920      const auto parent = 
R__b.GetParent();
 
  938         if(table) table->
Add(uid, pid);
 
 
  950   const char *classname = 
"UnknownClass";
 
 
  980      gROOT->Message(1001, 
this);
 
 
  994      gROOT->Message(1002, 
this);
 
 
 
 1008      gROOT->Message(1003, 
this);
 
 
 1022      gROOT->Message(1004, 
this);
 
 
 1051   const char *classname = 
"UnknownClass";
 
 
 1092void TObject::operator 
delete(
void *ptr)
 
 
 1103void TObject::operator 
delete[](
void *ptr)
 
 
 1114void TObject::operator 
delete(
void *ptr, 
size_t size)
 
 
 1125void TObject::operator 
delete[](
void *ptr, 
size_t size)
 
 
 1136std::string cling::printValue(
TObject *val)
 
 1138   std::ostringstream 
strm;
 
 1146void TObject::operator 
delete(
void *ptr, 
void *
vp)
 
 
 1154void TObject::operator 
delete[](
void *ptr, 
void *
vp)
 
 
 
 
 
 
 
 
#define R__unlikely(expr)
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
void ErrorHandler(int level, const char *location, const char *fmt, std::va_list va)
General error handler function. It calls the user set error handler.
 
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
 
constexpr Int_t kSysError
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
 
R__EXTERN TGuiFactory * gGuiFactory
 
R__EXTERN TObjectTable * gObjectTable
 
#define ATTRIBUTE_NO_SANITIZE_ADDRESS
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
Using a TBrowser one can browse all ROOT objects.
 
Buffer base class used for serializing objects.
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
static Int_t AutoBrowse(TObject *obj, TBrowser *browser)
Browse external object inherited from TObject.
 
virtual TInspectorImp * CreateInspectorImp(const TObject *obj, UInt_t width, UInt_t height)
Create a batch version of TInspectorImp.
 
Option_t * GetOption() const override
Returns the object option stored in the list.
 
void SetOption(Option_t *option)
Sets the object option stored in the list.
 
Each ROOT class (see TClass) has a linked list of methods.
 
static void AddObj(TObject *obj)
Add an object to the global object table gObjectTable.
 
void RemoveQuietly(TObject *obj)
Remove an object from the object table.
 
Mother of all ROOT objects.
 
void AbstractMethod(const char *method) const
Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual Bool_t IsFolder() const
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
virtual void Inspect() const
Dump contents of this object in a graphics canvas.
 
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Computes distance from point (px,py) to the object.
 
static void SetObjectStat(Bool_t stat)
Turn on/off tracking of objects in the TObjectTable.
 
virtual Bool_t Notify()
This method must be overridden to handle object notification (the base implementation is no-op).
 
virtual Bool_t IsEqual(const TObject *obj) const
Default equal comparison (objects are equal if they have the same address in memory).
 
@ kOverwrite
overwrite existing object with same name
 
@ kSingleKey
write collection with single key
 
@ kWriteDelete
write object, then delete previous key with same name
 
virtual const char * GetName() const
Returns name of object.
 
virtual void Browse(TBrowser *b)
Browse object. May be overridden for another default action.
 
virtual void Dump() const
Dump contents of object on stdout.
 
UInt_t fUniqueID
object unique identifier
 
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
 
virtual const char * GetIconName() const
Returns mime type name of object.
 
virtual void RecursiveRemove(TObject *obj)
Recursively remove this object from a list.
 
virtual void DoError(int level, const char *location, const char *fmt, va_list va) const
Interface to ErrorHandler (protected).
 
virtual Bool_t HandleTimer(TTimer *timer)
Execute action in response of a timer timing out.
 
virtual TObject * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility.
 
virtual UInt_t GetUniqueID() const
Return the unique object id.
 
@ kIsOnHeap
object is on heap
 
@ kNotDeleted
object has not been deleted
 
UInt_t fBits
bit field status word
 
static Longptr_t fgDtorOnly
object for which to call dtor only (i.e. no delete)
 
virtual void Streamer(TBuffer &)
Stream an object of class TObject.
 
virtual void SysError(const char *method, const char *msgfmt,...) const
Issue system error message.
 
R__ALWAYS_INLINE Bool_t IsOnHeap() const
 
virtual const char * ClassName() const
Returns name of class to which the object belongs.
 
virtual void UseCurrentStyle()
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyl...
 
virtual Option_t * GetDrawOption() const
Get option used by the graphics system to draw this object.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
void MayNotUse(const char *method) const
Use this method to signal that a method (defined in a base class) may not be called in a derived clas...
 
virtual TObject * DrawClone(Option_t *option="") const
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
 
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute action corresponding to an event at (px,py).
 
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
 
virtual void Execute(const char *method, const char *params, Int_t *error=nullptr)
Execute method on this object with the given parameter string, e.g.
 
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
 
virtual char * GetObjectInfo(Int_t px, Int_t py) const
Returns string containing info about the object at position (px,py).
 
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
 
virtual Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
Write this object to the current directory.
 
@ kOnlyPrepStep
Used to request that the class specific implementation of TObject::Write just prepare the objects to ...
 
virtual void SaveAs(const char *filename="", Option_t *option="") const
Save this object in the file specified by filename.
 
virtual void Delete(Option_t *option="")
Delete this object.
 
static Longptr_t GetDtorOnly()
Return destructor only flag.
 
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
 
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
 
static Bool_t GetObjectStat()
Get status of object stat flag.
 
virtual void Copy(TObject &object) const
Copy this to obj.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
virtual void SetDrawOption(Option_t *option="")
Set drawing option for object.
 
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
 
static void SetDtorOnly(void *obj)
Set destructor only flag.
 
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
 
virtual const char * GetTitle() const
Returns title of object.
 
virtual void DrawClass() const
Draw class inheritance tree of the class to which this object belongs.
 
virtual TClass * IsA() const
 
virtual Int_t Compare(const TObject *obj) const
Compare abstract method.
 
virtual ~TObject()
TObject destructor.
 
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
 
virtual void Paint(Option_t *option="")
This method must be overridden if a class wants to paint itself.
 
virtual void Print(Option_t *option="") const
This method must be overridden when a class wants to print itself.
 
virtual void Pop()
Pop on object drawn in a pad to the top of the display list.
 
virtual ULong_t Hash() const
Return hash value for this object.
 
virtual void ls(Option_t *option="") const
The ls function lists the contents of a class on stdout.
 
static Bool_t fgObjectStat
if true keep track of objects in TObjectTable
 
@ kCanDelete
if object in a list can be deleted
 
@ kIsReferenced
if object is referenced by a TRef or TRefArray
 
@ kMustCleanup
if object destructor must call RecursiveRemove()
 
virtual Int_t Read(const char *name)
Read contents of object with specified name from the current directory.
 
static void AddToTObjectTable(TObject *)
Private helper function which will dispatch to TObjectTable::AddObj.
 
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
 
void Obsolete(const char *method, const char *asOfVers, const char *removedFromVers) const
Use this method to declare a method obsolete.
 
A TProcessID identifies a ROOT job in a unique way in time and space.
 
void PutObjectWithID(TObject *obj, UInt_t uid=0)
stores the object at the uid th slot in the table of objects The object uniqued is set as well as its...
 
static TProcessID * GetProcessWithUID(const TObject *obj)
static function returning a pointer to TProcessID with its pid encoded in the highest byte of obj->Ge...
 
static Bool_t Initialized()
Return kTRUE if the TROOT object has been initialized.
 
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
 
A TRefTable maintains the association between a referenced object and the parent object supporting th...
 
static TRefTable * GetRefTable()
Static function returning the current TRefTable.
 
virtual Int_t Add(Int_t uid, TProcessID *context=nullptr)
Add a new uid to the table.
 
static void ObjectDealloc(void *vp)
Used to deallocate a TObject on the heap (via TObject::operator delete()).
 
const char * Data() const
 
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.
 
Handles synchronous and a-synchronous timer events.
 
small helper class to store/restore gPad context in TPad methods
 
bool DeleteChangesMemory()
 
bool DeleteChangesMemoryImpl()
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
 
void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.