From 380cddab526fcf3c2f33dc8ebeb61c2d42703f41 Mon Sep 17 00:00:00 2001 From: bryce Date: Tue, 16 Oct 2001 08:35:17 +0000 Subject: Eliminate use of C++ static constructors. * interpret.cc: Remove static Utf8Consts. Use namespace gcj. * jni.cc: Likewise. * resolve.cc: Likewise. * defineclass.cc: Likewise. (_Jv_ClassReader::handleClassBegin): Synchronize call to _Jv_RegisterClass. * include/jvm.h (void_signature, clinit_name, init_name, finit_name): Declare in namespace gcj. * java/lang/Class.h (Class): Remove initialization for primitive types. (friend void _Jv_InitPrimClass): This is in prims.cc. * prims.cc (_Jv_InitPrimClass): Do primitive type initialization here instead. (void_signature, clinit_name, init_name, finit_name): Define in namespace gcj. (_Jv_CreateJavaVM): Call _Jv_InitThreads, _Jv_InitGC, and _Jv_InitializeSyncMutex from here. Initialize Utf8 constants. Initialize primitive types. * java/lang/natClassLoader.cc (_Jv_RegisterClasses): Don't call initialization routines. Don't synchronize. * java/lang/natRuntime.cc (_load): Synchronize on java.lang.Class across dlopen call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46282 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/include/jvm.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'libjava/include') diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h index 27a1c6f3223..bb54c8b58d8 100644 --- a/libjava/include/jvm.h +++ b/libjava/include/jvm.h @@ -124,6 +124,15 @@ extern jboolean _Jv_equaln (_Jv_Utf8Const *, jstring, jint); // FIXME: remove this define. #define StringClass java::lang::String::class$ +namespace gcj +{ + /* Some constants used during lookup of special class methods. */ + extern _Jv_Utf8Const *void_signature; /* "()V" */ + extern _Jv_Utf8Const *clinit_name; /* "" */ + extern _Jv_Utf8Const *init_name; /* "" */ + extern _Jv_Utf8Const *finit_name; /* "finit$", */ +}; + /* Type of pointer used as finalizer. */ typedef void _Jv_FinalizerFunc (jobject); -- cgit v1.2.3