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
Showing
- cint/inc/Method.h 1 addition, 0 deletionscint/inc/Method.h
- cint/src/Api.cxx 12 additions, 5 deletionscint/src/Api.cxx
- cint/src/CallFunc.cxx 5 additions, 2 deletionscint/src/CallFunc.cxx
- cint/src/Method.cxx 13 additions, 0 deletionscint/src/Method.cxx
- cint/src/bc_exec_asm.h 14 additions, 4 deletionscint/src/bc_exec_asm.h
- cint/src/bc_inst.cxx 26 additions, 13 deletionscint/src/bc_inst.cxx
- cint/src/bc_inst.h 2 additions, 1 deletioncint/src/bc_inst.h
- cint/src/common.h 11 additions, 2 deletionscint/src/common.h
- cint/src/fproto.h 2 additions, 0 deletionscint/src/fproto.h
- cint/src/v6_cast.cxx 121 additions, 92 deletionscint/src/v6_cast.cxx
- cint/src/v6_func.cxx 10 additions, 5 deletionscint/src/v6_func.cxx
- cint/src/v6_ifunc.cxx 6 additions, 2 deletionscint/src/v6_ifunc.cxx
- cint/src/v6_init.cxx 9 additions, 0 deletionscint/src/v6_init.cxx
- cint/src/v6_newlink.cxx 459 additions, 151 deletionscint/src/v6_newlink.cxx
- cint/src/v6_pause.cxx 1 addition, 1 deletioncint/src/v6_pause.cxx
- cint/src/v6_pcode.cxx 4 additions, 2 deletionscint/src/v6_pcode.cxx
- cint/src/v6_scrupto.cxx 3 additions, 2 deletionscint/src/v6_scrupto.cxx
- cint/src/v6_struct.cxx 7 additions, 2 deletionscint/src/v6_struct.cxx
- cint/src/v6_var.cxx 6 additions, 5 deletionscint/src/v6_var.cxx
Loading
Please register or sign in to comment