Skip to content
Snippets Groups Projects
Commit c1c0f1f0 authored by Axel Naumann's avatar Axel Naumann
Browse files

Prevent creation of function call stubs for virtual functions that are...

Prevent creation of function call stubs for virtual functions that are implemented in the base class.
For this to work, this ptrs of derived objects must be adjusted to the non-left-most base class for multiple inheritance.
G__funcentry now contains a field holding this offset.
G__MethodInfo has new member func GetThisPointerOffset() returning this offset.
The bytecode representation of a function call (G__LDFUNC) is extended to store this offset.
To prevent the setup of derived classes' functions, a stack of dictionary setup routines needed to be implemented.
Inheritance chains now translate to recursive memfunc_setup calls; thus the "stored" globals needed to be converted into a stack (each call has its own "previous" set of globals).


git-svn-id: http://root.cern.ch/svn/root/trunk@18805 27541ba8-7e3a-0410-8455-c3a389f83636
parent 611418f1
No related branches found
No related tags found
Loading
Showing with 712 additions and 289 deletions
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