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

Implement polymorphism for Emulated object (still not supporting polymorphism

of Emulated Object inheriting from compiled class).
This avoids memory leaks when the user data model relies on polymorphism
(and we are not using the library) and avoid splicing if the data is copied.

Details:

TStreamerInfo::New inserts the address of the creating TStreamerInfo into
the object.  This address is inserted in each emulated that does not inherit
from an emulated class and is positioned after all the base classes (which
are compiled classes).   A derived class will set this value inside each
of its emulated base class.

TStreamerInfo::Destruct and the new method TStreamerInfo::GetActualClass
use this information to detect the TStreamerInfo actually used to create
the object and hence run the proper emulated destructor.

In TFormLeafInfo which an issue where a data member which is an STL
container was not properly found.


git-svn-id: http://root.cern.ch/svn/root/trunk@32586 27541ba8-7e3a-0410-8455-c3a389f83636
parent 4e5b730c
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment