aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/Class.h
diff options
context:
space:
mode:
authorBryce McKinlay <bryce@albatross.co.nz>2001-01-17 10:22:33 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2001-01-17 10:22:33 +0000
commit607adf67a0b885a747fcc6995f8545a26f006661 (patch)
tree611e7282c479126e4aaf4a31ed1c07a8bd3e6df8 /libjava/java/lang/Class.h
parent61a24907052a2cdcf421ff28fa91a47668c9d300 (diff)
downloadgcc-607adf67a0b885a747fcc6995f8545a26f006661.zip
gcc-607adf67a0b885a747fcc6995f8545a26f006661.tar.gz
gcc-607adf67a0b885a747fcc6995f8545a26f006661.tar.bz2
Class.h (isInterface): Move implementation from natClass.cc.
* 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. From-SVN: r39091
Diffstat (limited to 'libjava/java/lang/Class.h')
-rw-r--r--libjava/java/lang/Class.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h
index febe748..9736b78 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 *));