Mikhail, Now if you introduce one more level of indirection and start comparing Classes, not VTables, you do not need to enumerate.
On 10/26/06, Mikhail Fursov <[EMAIL PROTECTED]> wrote:
On 10/26/06, Pavel Pervov <[EMAIL PROTECTED]> wrote: > > My statement is based on the following: JIT only needs vtable to call > (interface) methods. If it's true, then I don't see where it will be > necessary to enumerate vtables. The only possibility I can imagine is when > JIT reuse vtable invoking several methods of the same object. Pavel, here is an example of the devirtualization: eax is an object reference: cmp eax,0 ; je 0131E778 ; mov ecx,dword ptr [eax] cmp ecx,13D5250h As you see JIT hardcodes vtable as a constant. If you move it - you have to enumerate it. All, Let's allow to Alexey to commit his code as it is and discuss unpinning with details in future? -- Mikhail Fursov
-- Pavel Pervov, Intel Enterprise Solutions Software Division