Commit f37a936b by Tom Tromey Committed by Tom Tromey

link.cc (ensure_class_linked): Removed #ifdef.

	* 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.

From-SVN: r96589
parent 4c7e5471
2005-03-16 Tom Tromey <tromey@redhat.com> 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 * gnu/java/lang/MainThread.java (run): Load main class using
system class loader. system class loader.
......
// java-interp.h - Header file for the bytecode interpreter. -*- c++ -*- // 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. This file is part of libgcj.
...@@ -32,12 +32,6 @@ extern "C" { ...@@ -32,12 +32,6 @@ extern "C" {
#include <ffi.h> #include <ffi.h>
} }
extern inline jboolean
_Jv_IsInterpretedClass (jclass c)
{
return (c->accflags & java::lang::reflect::Modifier::INTERPRETED) != 0;
}
struct _Jv_ResolvedMethod; struct _Jv_ResolvedMethod;
void _Jv_InitInterpreter (); void _Jv_InitInterpreter ();
......
...@@ -572,4 +572,13 @@ _Jv_CheckABIVersion (unsigned long value) ...@@ -572,4 +572,13 @@ _Jv_CheckABIVersion (unsigned long value)
|| value == (GCJ_VERSION + GCJ_BINARYCOMPAT_ADDITION)); || 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__ */ #endif /* __JAVA_JVM_H__ */
...@@ -233,8 +233,9 @@ jboolean _Jv_CheckAccess (jclass self_klass, jclass other_klass, ...@@ -233,8 +233,9 @@ jboolean _Jv_CheckAccess (jclass self_klass, jclass other_klass,
jint flags); jint flags);
jclass _Jv_GetArrayClass (jclass klass, java::lang::ClassLoader *loader); jclass _Jv_GetArrayClass (jclass klass, java::lang::ClassLoader *loader);
#ifdef INTERPRETER
jboolean _Jv_IsInterpretedClass (jclass); jboolean _Jv_IsInterpretedClass (jclass);
#ifdef INTERPRETER
void _Jv_InitField (jobject, jclass, int); void _Jv_InitField (jobject, jclass, int);
class _Jv_ClassReader; class _Jv_ClassReader;
...@@ -465,8 +466,9 @@ private: ...@@ -465,8 +466,9 @@ private:
friend jclass (::_Jv_GetArrayClass) (jclass klass, friend jclass (::_Jv_GetArrayClass) (jclass klass,
java::lang::ClassLoader *loader); java::lang::ClassLoader *loader);
#ifdef INTERPRETER
friend jboolean (::_Jv_IsInterpretedClass) (jclass); friend jboolean (::_Jv_IsInterpretedClass) (jclass);
#ifdef INTERPRETER
friend void ::_Jv_InitField (jobject, jclass, int); friend void ::_Jv_InitField (jobject, jclass, int);
friend class ::_Jv_ClassReader; friend class ::_Jv_ClassReader;
......
...@@ -1395,9 +1395,7 @@ _Jv_Linker::ensure_class_linked (jclass klass) ...@@ -1395,9 +1395,7 @@ _Jv_Linker::ensure_class_linked (jclass klass)
// a reference to a class we can't access. This can validly // a reference to a class we can't access. This can validly
// occur in an obscure case involving the InnerClasses // occur in an obscure case involving the InnerClasses
// attribute. // attribute.
#ifdef INTERPRETER
if (! _Jv_IsInterpretedClass (klass)) if (! _Jv_IsInterpretedClass (klass))
#endif
{ {
// Resolve class constants first, since other constant pool // Resolve class constants first, since other constant pool
// entries may rely on these. // entries may rely on these.
...@@ -1652,11 +1650,7 @@ _Jv_Linker::print_class_loaded (jclass klass) ...@@ -1652,11 +1650,7 @@ _Jv_Linker::print_class_loaded (jclass klass)
// We use a somewhat bogus test for the ABI here. // We use a somewhat bogus test for the ABI here.
char *abi; char *abi;
#ifdef INTERPRETER
if (_Jv_IsInterpretedClass (klass)) if (_Jv_IsInterpretedClass (klass))
#else
if (false)
#endif
abi = "bytecode"; abi = "bytecode";
else if (klass->state == JV_STATE_PRELOADING) else if (klass->state == JV_STATE_PRELOADING)
abi = "BC-compiled"; abi = "BC-compiled";
...@@ -1693,10 +1687,7 @@ _Jv_Linker::wait_for_state (jclass klass, int state) ...@@ -1693,10 +1687,7 @@ _Jv_Linker::wait_for_state (jclass klass, int state)
if (gcj::verbose_class_flag if (gcj::verbose_class_flag
&& (klass->state == JV_STATE_COMPILED && (klass->state == JV_STATE_COMPILED
|| klass->state == JV_STATE_PRELOADING) || klass->state == JV_STATE_PRELOADING)
#ifdef INTERPRETER && ! _Jv_IsInterpretedClass (klass))
&& ! _Jv_IsInterpretedClass (klass)
#endif
)
print_class_loaded (klass); print_class_loaded (klass);
try try
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment