Skip to content
Snippets Groups Projects
  • Philippe Canal's avatar
    e88998c8
    Implement polymorphism for Emulated object (still not supporting polymorphism · e88998c8
    Philippe Canal authored
    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
    e88998c8
    History
    Implement polymorphism for Emulated object (still not supporting polymorphism
    Philippe Canal authored
    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