aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog9
-rw-r--r--libjava/include/java-interp.h8
-rw-r--r--libjava/include/jvm.h9
-rw-r--r--libjava/java/lang/Class.h6
-rw-r--r--libjava/link.cc11
5 files changed, 24 insertions, 19 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 76bfd40..7c9560fc8 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,5 +1,14 @@
2005-03-16 Tom Tromey <tromey@redhat.com>
+ * link.cc (ensure_class_linked): Removed #ifdef.
+ (print_class_loaded): Likewise.
+ (wait_for_state): Likewise.
+ * java/lang/Class.h (_Jv_IsInterpretedClass): Always declare.
+ * include/jvm.h (_Jv_IsInterpretedClass): Moved from...
+ * include/java-interp.h: ... here.
+
+2005-03-16 Tom Tromey <tromey@redhat.com>
+
* gnu/java/lang/MainThread.java (run): Load main class using
system class loader.
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
index 5692861..0615200 100644
--- a/libjava/include/java-interp.h
+++ b/libjava/include/java-interp.h
@@ -1,6 +1,6 @@
// java-interp.h - Header file for the bytecode interpreter. -*- c++ -*-
-/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation
This file is part of libgcj.
@@ -32,12 +32,6 @@ extern "C" {
#include <ffi.h>
}
-extern inline jboolean
-_Jv_IsInterpretedClass (jclass c)
-{
- return (c->accflags & java::lang::reflect::Modifier::INTERPRETED) != 0;
-}
-
struct _Jv_ResolvedMethod;
void _Jv_InitInterpreter ();
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
index 4dfdb4d..6234788 100644
--- a/libjava/include/jvm.h
+++ b/libjava/include/jvm.h
@@ -572,4 +572,13 @@ _Jv_CheckABIVersion (unsigned long value)
|| value == (GCJ_VERSION + GCJ_BINARYCOMPAT_ADDITION));
}
+// It makes the source cleaner if we simply always define this
+// function. If the interpreter is not built, it will never return
+// 'true'.
+extern inline jboolean
+_Jv_IsInterpretedClass (jclass c)
+{
+ return (c->accflags & java::lang::reflect::Modifier::INTERPRETED) != 0;
+}
+
#endif /* __JAVA_JVM_H__ */
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h
index 70e314e..a82089d 100644
--- a/libjava/java/lang/Class.h
+++ b/libjava/java/lang/Class.h
@@ -233,8 +233,9 @@ jboolean _Jv_CheckAccess (jclass self_klass, jclass other_klass,
jint flags);
jclass _Jv_GetArrayClass (jclass klass, java::lang::ClassLoader *loader);
-#ifdef INTERPRETER
jboolean _Jv_IsInterpretedClass (jclass);
+
+#ifdef INTERPRETER
void _Jv_InitField (jobject, jclass, int);
class _Jv_ClassReader;
@@ -465,8 +466,9 @@ private:
friend jclass (::_Jv_GetArrayClass) (jclass klass,
java::lang::ClassLoader *loader);
-#ifdef INTERPRETER
friend jboolean (::_Jv_IsInterpretedClass) (jclass);
+
+#ifdef INTERPRETER
friend void ::_Jv_InitField (jobject, jclass, int);
friend class ::_Jv_ClassReader;
diff --git a/libjava/link.cc b/libjava/link.cc
index b916bf3..909a7b6 100644
--- a/libjava/link.cc
+++ b/libjava/link.cc
@@ -1395,9 +1395,7 @@ _Jv_Linker::ensure_class_linked (jclass klass)
// a reference to a class we can't access. This can validly
// occur in an obscure case involving the InnerClasses
// attribute.
-#ifdef INTERPRETER
if (! _Jv_IsInterpretedClass (klass))
-#endif
{
// Resolve class constants first, since other constant pool
// entries may rely on these.
@@ -1652,11 +1650,7 @@ _Jv_Linker::print_class_loaded (jclass klass)
// We use a somewhat bogus test for the ABI here.
char *abi;
-#ifdef INTERPRETER
if (_Jv_IsInterpretedClass (klass))
-#else
- if (false)
-#endif
abi = "bytecode";
else if (klass->state == JV_STATE_PRELOADING)
abi = "BC-compiled";
@@ -1693,10 +1687,7 @@ _Jv_Linker::wait_for_state (jclass klass, int state)
if (gcj::verbose_class_flag
&& (klass->state == JV_STATE_COMPILED
|| klass->state == JV_STATE_PRELOADING)
-#ifdef INTERPRETER
- && ! _Jv_IsInterpretedClass (klass)
-#endif
- )
+ && ! _Jv_IsInterpretedClass (klass))
print_class_loaded (klass);
try