Joost van der Sluis schrieb:
It seems like that when you call a method of an interface, a 'hidden'
wrapper is generated by the compiler to adjust the 'self' parameter so
that it does not refers to the interface-pointer, but the actual
class-pointer.
This is common practice, also in C++.
The
On Thu, 2010-08-05 at 16:01 +0200, Jonas Maebe wrote:
> On 05 Aug 2010, at 15:18, Joost van der Sluis wrote:
>
> > 1: replace the 'call' in the wrapper with a 'jmp'. I've tried this and
> > it works, but when the function returns, the 'self'-class-pointer is
> > not
> > converted to the interfac
On Thu, 2010-08-05 at 17:36 +0400, Sergei Gorelkin wrote:
> Joost van der Sluis пишет:
> > ...
> > I don't know what's the best way to fix this.
> > 2: See if we can let the caller do the
> > interface-pointer-to-class-pointer conversion. That way the wrapper is
> > not necessary anymore. Leads to
On 05 Aug 2010, at 15:18, Joost van der Sluis wrote:
1: replace the 'call' in the wrapper with a 'jmp'. I've tried this and
it works, but when the function returns, the 'self'-class-pointer is
not
converted to the interface-pointer. But I don't see why this is done
in
the first place?!?
Joost van der Sluis пишет:
...
I don't know what's the best way to fix this.
I see three solutions:
1: replace the 'call' in the wrapper with a 'jmp'. I've tried this and
it works, but when the function returns, the 'self'-class-pointer is not
converted to the interface-pointer. But I don't see
Hi all,
It seems like that when you call a method of an interface, a 'hidden'
wrapper is generated by the compiler to adjust the 'self' parameter so
that it does not refers to the interface-pointer, but the actual
class-pointer.
The problem is only that the extra 'call' which is made adds one ext