Skip to content
Snippets Groups Projects
Commit c9460ae5 authored by Philippe Canal's avatar Philippe Canal
Browse files

Replace TClassRef list with a persistent TClass**

TClass objects can be created as a result of opening a TFile (in which
they are in emulated mode) or as a result of loading the dictionary for
the corresponding class.   When a dictionary is loaded any pre-existing
emulated TClass is replaced by the one created/coming from the dictionary.
To have a reference that always point to the 'current' TClass object for
a given class, one should use a TClassRef.
TClassRef works by holding on to the fPersistentRef which is updated
atomically whenever a TClass is replaced.  During the replacement the
value of fPersistentRef is set to zero, leading the TClassRef to call
TClass::GetClass which is also locked by the replacement.   At the end
of the replacement, fPersistentRef points to the new TClass object.

Conflicts:
	bindings/pyroot/src/FunctionHolder.cxx
	core/meta/inc/TClass.h
	core/meta/src/TClass.cxx
parent ffd52ac5
Branches
Tags
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment