FYI: Patch: Make Method.invoke() and JNI_CallAnyMethod use vtables

Tom Tromey tromey@redhat.com
Wed Oct 29 21:16:00 GMT 2003


>>>>> "Bryce" == Bryce McKinlay <bryce@mckinlay.net.nz> writes:

Bryce> I think final methods should always get vtable entries, even if they 
Bryce> are not used for "internal" dispatch in a binary. Thats because 
Bryce> removing the "final" modifier does not break pre-existing binaries 
Bryce> according to the BC rules, so external calls must use the vtable.

Good point, thanks.

Bryce> The runtime layout code in libgcj certainly does this, I was under the 
Bryce> impression the compiler does as well but this would be worth checking.

Nope, search for "INVOKE_NONVIRTUAL" in parse.y.  We optimize this
case, but that's invalid with the BC ABI.

Tom



More information about the Java-patches mailing list