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

Reply via email to