diff options
author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-01-17 10:22:33 +0000 |
---|---|---|
committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-01-17 10:22:33 +0000 |
commit | 2da009a9c5fa4c8c7c54f32a02ad1adc5846c11f (patch) | |
tree | 611e7282c479126e4aaf4a31ed1c07a8bd3e6df8 /libjava/java/lang/Class.h | |
parent | 9bf46465f5f74b01122d1855a81d459606e17fe2 (diff) | |
download | ppe42-gcc-2da009a9c5fa4c8c7c54f32a02ad1adc5846c11f.tar.gz ppe42-gcc-2da009a9c5fa4c8c7c54f32a02ad1adc5846c11f.zip |
* java/lang/Class.h (isInterface): Move implementation from
natClass.cc. Declare inline.
(Class): Add default constructor.
* java/lang/Object.h: Update comments.
* java/lang/natClass.cc (initializeClass): Use _Jv_InitClass to
initialize superclass, saving a call if super is already initialized.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39091 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/Class.h')
-rw-r--r-- | libjava/java/lang/Class.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h index febe74816f9..9736b78829b 100644 --- a/libjava/java/lang/Class.h +++ b/libjava/java/lang/Class.h @@ -174,7 +174,8 @@ public: jboolean isAssignableFrom (jclass cls); jboolean isInstance (jobject obj); - jboolean isInterface (void) + + inline jboolean isInterface (void) { return (accflags & java::lang::reflect::Modifier::INTERFACE) != 0; } @@ -196,16 +197,17 @@ public: // finalization void finalize (); + Class () {}; + // This constructor is used to create Class object for the primitive - // types. - Class (jobject cname, jbyte sig, jint len, jobject array_vtable) { - + // types. See prims.cc. + Class (jobject cname, jbyte sig, jint len, jobject array_vtable) + { using namespace java::lang::reflect; _Jv_Utf8Const *_Jv_makeUtf8Const (char *s, int len); - // C++ ctors are fixing the vtbl in a way that doesn't fit Java. - // We can fix the C++ compiler, or we can hack our runtime. What's - // below fix the vtable so that it starts at -2. + // C++ ctors set the vtbl pointer to point at an offset inside the vtable + // object. That doesn't work for Java, so this hack adjusts it back. void *p = ((void **)this)[0]; ((void **)this)[0] = (void *)((char *)p-2*sizeof (void *)); |