patch to bring java vtables closer to g++ abi conformance

Per Bothner per@bothner.com
Wed Jan 23 20:51:00 GMT 2002


Bryce McKinlay wrote:
>> > type_info is for C++ type info, not the java class object, right?
>>>> It could be both.
>> Ahh, I see. Although that wouldn't work if we were to put static class 
> data in class objects (for improved performance and better JLS 
> compliance), because the size of the class then wouldn't be constant.

I'm suggesting the following: (Note that _si_class_type_info is a
standard sub-class of type_info specified by the C++ V3 ABI - see
http://www.codesourcery.com/cxx-abi/abi.html.)
class __jv_class_type_info : public __si_class_type_info {
 jclass getJavaClass() { return (jclass) (this - CONSTANT); }
 jclass operator() () { return getJavaClass(); }
};
class java:lang:Class
: public java:lang:Object, public _jv_class_type_info
{
 ... fields of Class, as before
}
This basically merges a (fixed-size) __jv_class_type_info
instance in each Class object. Converting from __jv_class_type_info
to Class or vice versa is a single subtraction/addition of a constant.
-- 
	--Per Bothner
per@bothner.com http://www.bothner.com/per/


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /