RFC: Change C++ ABI so that interface dispatch does not depend on reflection.
Tom Tromey
tromey@redhat.com
Tue Jan 31 19:32:00 GMT 2006
>>>>> "David" == David Daney <ddaney@avtrex.com> writes:
David> The first case is simple to handle. If a method is the <clinit>
David> method just emit the reflection data.
Cute.
You could also just have a pointer to this function in the Class
object. That way, for a reflection-less install, you could even
remove the reflection-related fields from Class. This would require
hacks to natClass.cc and probably other places, though.
David> Build interface dispatch tables at compile/link time.
David> Change runtime to use new tables instead of building its own at class
David> init time.
Sounds reasonable to me. I don't think you even need to change the
runtime very much... it looks to me like the runtime linker already
skips this step if the 'idt' field is set.
Building the idt table at compile time, for the C++ ABI, seems like a
general improvement. I don't think we need this to be conditional on
-fno-reflection.
Tom
More information about the Java
mailing list