Tom Tromey
04942eac9b
For PR libgcj/5103:
...
* include/jvm.h (__GCJ_JNI_IMPL__): Define.
* include/config.h.in: Rebuilt.
* configure: Rebuilt.
* configure.in: Define JV_HAVE_INTTYPES_H if inttypes.h found.
Added comment for HAVE_DLOPEN to avoid autoheader error.
* gcj/libgcj-config.h.in (JV_HAVE_INTTYPES_H): Added.
* include/jni.h: Include <gcj/libgcj-config.h>. Don't include
CNI-specific headers if we are compiling ordinary JNI code with a
C++ compiler. Include <inttypes.h> and JNIWeakRef.h when
appropriate.
* jni.cc: Don't include JNIWeakRef.h.
From-SVN: r48082
2001-12-16 22:33:02 +00:00
Tom Tromey
415791dba8
* jni.cc (call): Synchronize if required.
...
From-SVN: r47949
2001-12-12 20:58:41 +00:00
Anthony Green
aee4201707
Obvious jni weak reference fix
...
From-SVN: r47128
2001-11-17 21:32:22 +00:00
Tom Tromey
819138ac7b
Makefile.in: Rebuilt.
...
* Makefile.in: Rebuilt.
* Makefile.am (ordinary_java_source_files): Added JNIWeakRef.java.
* jni.cc: Include JNIWeakRef.h.
(unwrap): New function.
(_Jv_JNI_DefineClass): Use it.
(_Jv_JNI_GetSuperclass): Likewise.
(_Jv_JNI_IsAssignableFrom): Likewise.
(_Jv_JNI_Throw): Likewise.
(_Jv_JNI_ThrowNew): Likewise.
(_Jv_JNI_IsSameObject): Likewise.
(_Jv_JNI_AllocObject): Likewise.
(_Jv_JNI_GetObjectClass): Likewise.
(_Jv_JNI_IsInstanceOf): Likewise.
(_Jv_JNI_GetAnyMethodID): Likewise.
(array_from_valist): Likewise.
(_Jv_JNI_CallAnyMethodV): Likewise.
(_Jv_JNI_CallAnyMethodA): Likewise.
(_Jv_JNI_CallAnyVoidMethodV): Likewise.
(_Jv_JNI_CallAnyVoidMethodA): Likewise.
(_Jv_JNI_CallStaticMethodV): Likewise.
(_Jv_JNI_CallStaticMethod): Likewise.
(_Jv_JNI_CallStaticMethodA): Likewise.
(_Jv_JNI_NewObjectV): Likewise.
(_Jv_JNI_NewObject): Likewise.
(_Jv_JNI_NewObjectA): Likewise.
(_Jv_JNI_GetField): Likewise.
(_Jv_JNI_SetField): Likewise.
(_Jv_JNI_GetAnyFieldID): Likewise.
(_Jv_JNI_SetStaticField): Likewise.
(_Jv_JNI_GetStringLength): Likewise.
(_Jv_JNI_GetStringChars): Likewise.
(_Jv_JNI_ReleaseStringChars): Likewise.
(_Jv_JNI_GetStringUTFLength): Likewise
(_Jv_JNI_GetStringUTFChars): Likewise.
(_Jv_JNI_GetStringRegion): Likewise.
(_Jv_JNI_GetStringUTFRegion): Likewise.
(_Jv_JNI_GetStringCritical): Likewise.
(_Jv_JNI_GetArrayLength): Likewise.
(_Jv_JNI_NewObjectArray): Likewise.
(_Jv_JNI_GetObjectArrayElement): Likewise.
(_Jv_JNI_SetObjectArrayElement): Likewise.
(_Jv_JNI_GetPrimitiveArrayElements): Likewise.
(_Jv_JNI_ReleasePrimitiveArrayElements): Likewise.
(_Jv_JNI_GetPrimitiveArrayRegion): Likewise.
(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
(_Jv_JNI_MonitorEnter): Likewise.
(_Jv_JNI_MonitorExit): Likewise.
(_Jv_JNI_ToReflectedField): Likewise.
(_Jv_JNI_FromReflectedField): Likewise.
(_Jv_JNI_ToReflectedMethod): Likewise.
(_Jv_JNI_FromReflectedMethod): Likewise.
(_Jv_JNI_NewGlobalRef): Likewise.
(_Jv_JNI_DeleteGlobalRef): Likewise.
(_Jv_JNI_DeleteLocalRef): Likewise.
(_Jv_JNI_NewLocalRef): Likewise.
(_Jv_JNI_NewWeakGlobalRef): New function.
(_Jv_JNI_DeleteWeakGlobalRef): Likewise.
(_Jv_JNIFunctions): Updated for new methods.
(NOT_IMPL): Removed.
* gnu/gcj/runtime/JNIWeakRef.java: New file.
From-SVN: r46990
2001-11-13 17:43:41 +00:00
Bryce McKinlay
415c055a2a
jni.cc (JNI_CreateJavaVM): Call _Jv_CreateJavaVM.
...
* jni.cc (JNI_CreateJavaVM): Call _Jv_CreateJavaVM. Don't call
_Jv_JNI_Init.
From-SVN: r46633
2001-10-30 10:14:48 +00:00
Bryce McKinlay
107abb2f61
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.
From-SVN: r46282
2001-10-16 09:35:17 +01:00
Martin Kahlert
e62bad3dc9
jni.cc (_Jv_JNI_DeleteLocalRef): Use correct frame size
...
2001-10-04 Martin Kahlert <martin.kahlert@infineon.com>
* jni.cc (_Jv_JNI_DeleteLocalRef): Use correct frame size
From-SVN: r46034
2001-10-05 14:23:06 +00:00
Andreas Jaeger
63dc70a159
* jni.cc (array_from_valist): Use promoted types for va_arg.
...
From-SVN: r45650
2001-09-17 07:08:10 +02:00
Tom Tromey
a4f291fc90
jni.cc (nathash, [...]): New globals.
...
* jni.cc (nathash, nathash_count, nathash_size): New globals.
(DELETED_ENTRY): New define.
(hash): New function.
(nathash_find_slot): Likewise.
(natrehash): Likewise.
(nathash_add): Likewise.
(_Jv_JNI_RegisterNatives): No longer interpreter-specific. Use
nathash_add.
(nathash_find): New function.
(_Jv_LookupJNIMethod): Use it. Synchronize body.
(call): Synchronize around assignment.
From-SVN: r45060
2001-08-20 19:52:02 +00:00
Tom Tromey
ac8d99218a
jni.cc: Include IdentityHashMap.h, not Hashtable.h.
...
* jni.cc: Include IdentityHashMap.h, not Hashtable.h.
(local_ref_table, global_ref_table): Now IdentityHashMap.
(_Jv_JNI_Init): Updated for new types.
(mark_for_gc): Likewise.
(unmark_for_gc): Likewise.
* gcj/javaprims.h: Rebuilt class list.
* Makefile.in: Rebuilt.
* Makefile.am (core_java_source_files): Added new file.
* java/util/IdentityHashMap.java: New file.
From-SVN: r44929
2001-08-15 20:46:48 +00:00
Martin Kahlert
6ff02a9579
jni.cc (JNI_CreateJavaVM): Call _Jv_JNI_Init in order to initialize global_ref_table/local_ref_table.
...
2001-08-02 Martin Kahlert <martin.kahlert@infineon.com>
* jni.cc (JNI_CreateJavaVM): Call _Jv_JNI_Init in order
to initialize global_ref_table/local_ref_table.
From-SVN: r44583
2001-08-02 22:12:40 +00:00
Tom Tromey
a5c30a8cff
* jni.cc (_Jv_JNI_NewLocalRef): Search other frames.
...
From-SVN: r43415
2001-06-15 23:44:45 +00:00
Tom Tromey
39986dd5ee
jni.cc (ClassClass): Removed; updated all users.
...
* jni.cc (ClassClass): Removed; updated all users.
(ObjectClass): Likewise.
(ThrowableClass): Likewise.
(MethodClass): Likewise.
(ThreadGroupClass): Likewise.
(local_ref_table): Renamed from `ref_table'.
(global_ref_table): New global.
(_Jv_JNI_Init): Initialize both ref tables.
(mark_for_gc): Added `ref_table' parameter.
(unmark_for_gc): Likewise. Also, fail if we unreferenced too many
times.
(_Jv_JNI_NewGlobalRef): Updated for new mark function.
(_Jv_JNI_DeleteGlobalRef): Likewise.
(_Jv_JNI_DeleteLocalRef): Likewise.
(_Jv_JNI_NewLocalRef): Likewise.
(_Jv_JNI_PopLocalFrame): Likewise.
(_Jv_JNI_GetStringChars): Likewise.
(_Jv_JNI_ReleaseStringChars): Likewise.
(_Jv_JNI_GetPrimitiveArrayElements): Likewise.
(_Jv_JNI_ReleasePrimitiveArrayElements): Likewise.
From-SVN: r43409
2001-06-15 22:09:10 +00:00
Per Bothner
c93d7fae7b
Implement invocation interface; don't create new thread for main.
...
From-SVN: r42428
2001-05-21 23:47:48 -07:00
Martin Kahlert
ecd554cd35
jni.cc (_Jv_JNI_GetPrimitiveArrayRegion): Fixed bounds checking.
...
2001-05-03 Martin Kahlert <martin.kahlert@infineon.com>
* jni.cc (_Jv_JNI_GetPrimitiveArrayRegion): Fixed bounds
checking.
(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
From-SVN: r41795
2001-05-03 16:56:38 +00:00
Tom Tromey
55cc31c086
jni.cc (_Jv_JNI_GetPrimitiveArrayRegion): Fixed bounds checking.
...
* jni.cc (_Jv_JNI_GetPrimitiveArrayRegion): Fixed bounds
checking.
(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
From-SVN: r41634
2001-04-27 16:09:54 +00:00
Tom Tromey
80a44e089f
jni.cc (wrap_value<jobject>, [...]): Removed.
...
* jni.cc (wrap_value<jobject>, wrap_value<jclass>): Removed.
(wrap_value<T*>): New specialization.
(_Jv_JNI_PopLocalFrame): Update env->locals.
From-SVN: r41157
2001-04-06 17:38:52 +00:00
Marcus G. Daniels
56f2b5bd76
jni.cc (wrap_value<jclass>): New specialization.
...
2001-04-02 Marcus G. Daniels <mgd@swarm.org>
* jni.cc (wrap_value<jclass>): New specialization.
From-SVN: r41021
2001-04-02 22:52:40 +00:00
Tom Tromey
5152512c2e
jni.cc (add_char): Correctly encode non-ascii characters.
...
* jni.cc (add_char): Correctly encode non-ascii characters.
(add_char): Define even when INTERPRETER not defined.
(mangled_name): Likewise.
(_Jv_GetJNIEnvNewFrame): Likewise.
(_Jv_LookupJNIMethod): Likewise.
From-SVN: r41010
2001-04-02 19:52:39 +00:00
Richard Henderson
b3208f56cb
exception.cc (java_eh_info): Make value type jthrowable.
...
* exception.cc (java_eh_info): Make value type jthrowable.
(_Jv_type_matcher): Remove now unneeded cast.
(_Jv_Throw): Make argument type jthrowable. Munge name
for SJLJ_EXCEPTIONS here ...
* gcj/cni.h: ... not here.
(JvThrow): Remove.
* gcj/javaprims.h (_Jv_Throw, _Jv_Sjlj_Throw): Update declarations.
* defineclass.cc, interpret.cc, jni.cc, posix-threads.cc,
prims.cc, resolve.cc, gnu/gcj/runtime/natFirstThread.cc,
gnu/gcj/xlib/natDrawable.cc, gnu/gcj/xlib/natFont.cc,
gnu/gcj/xlib/natWMSizeHints.cc, gnu/gcj/xlib/natWindowAttributes.cc,
gnu/gcj/xlib/natXImage.cc, java/io/natFile.cc,
java/io/natFileDescriptorEcos.cc, java/io/natFileDescriptorPosix.cc,
java/io/natFileDescriptorWin32.cc, java/io/natFileWin32.cc,
java/lang/natClass.cc, java/lang/natClassLoader.cc,
java/lang/natDouble.cc, java/lang/natObject.cc,
java/lang/natPosixProcess.cc, java/lang/natRuntime.cc,
java/lang/natString.cc, java/lang/natSystem.cc,
java/lang/natThread.cc, java/lang/reflect/natArray.cc,
java/lang/reflect/natConstructor.cc, java/lang/reflect/natField.cc,
java/lang/reflect/natMethod.cc, java/util/zip/natDeflater.cc,
java/util/zip/natInflater.cc:
Use throw, not JvThrow or _Jv_Throw.
From-SVN: r40838
2001-03-25 23:05:32 -08:00
Tom Tromey
83c64db681
jni.cc (_Jv_JNI_GetAnyFieldID): Handle unresolved fields.
...
* jni.cc (_Jv_JNI_GetAnyFieldID): Handle unresolved fields.
* java/lang/reflect/natField.cc (getType): Use _Jv_ResolveField
unconditionally.
* include/jvm.h (_Jv_ResolveField): Declare.
* include/java-interp.h (_Jv_ResolveField): Don't declare.
* resolve.cc (_Jv_ResolveField): No longer conditional on
INTERPRETER.
From-SVN: r40785
2001-03-23 19:15:44 +00:00
Marcus G. Daniels
736458d64b
jni.cc (add_char): Handle .' like
/'.
...
2001-03-22 Marcus G. Daniels <mgd@swarm.org>
* jni.cc (add_char): Handle `.' like `/'.
From-SVN: r40748
2001-03-22 17:47:15 +00:00
Tom Tromey
65422ec58b
jni.cc (_Jv_JNIFunctions): Added comment for each entry in native interface structure.
...
* jni.cc (_Jv_JNIFunctions): Added comment for each entry in
native interface structure.
From-SVN: r39298
2001-01-27 19:30:31 +00:00
Tom Tromey
f86f42a8ff
jni.cc (_Jv_JNI_GetAnyMethodID): Rewrite signature from external to internal representation.
...
* jni.cc (_Jv_JNI_GetAnyMethodID): Rewrite signature from external
to internal representation.
(_Jv_JNI_GetAnyFieldID): Likewise. Also, only use
_Jv_FindClassFromSignature.
From-SVN: r39289
2001-01-26 23:00:19 +00:00
Warren Levy
4547105f64
jni.cc: Added include of java/lang/ThreadGroup.h.
...
* jni.cc: Added include of java/lang/ThreadGroup.h.
* gcj/javaprims.h: Removed Replaceable and Resolvable from namespace
per change of 2000-10-05.
From-SVN: r37173
2000-11-01 00:18:03 +00:00
Tom Tromey
1d336a099d
natField.cc (BooleanClass): Don't define.
...
* java/lang/reflect/natField.cc (BooleanClass): Don't define.
* java/lang/reflect/natArray.cc (BooleanClass): Don't define.
* java/lang/Class.h (Object): Added `class$' field.
* java/lang/Object.h (Object): Added `class$' field.
* defineclass.cc (ClassClass): Use `class$' form.
(ClassObject): Likewise.
* resolve.cc (ClassObject): Use `class$' form.
(ObjectClass): Likewise.
* interpret.cc (ClassError): Removed.
* java/net/natPlainDatagramSocketImpl.cc (BooleanClass): Use
`class$' form.
(IntegerClass): Likewise.
* java/net/natPlainSocketImpl.cc (BooleanClass): Use `class$'
form.
* java/lang/natClassLoader.cc (CloneableClass): Use `class$' form.
(ObjectClass, ClassClass, VMClassLoaderClass, ClassLoaderClass,
SerializableClass): Likewise.
Include Serializable.h, Cloneable.h.
* java/lang/natSystem.cc (SystemClass): Removed.
(init_properties): Use `class$' form.
* java/lang/natObject.cc (CloneableClass): Removed.
(clone): Use `class$' form.
* java/lang/natClass.cc (CloneableClass): Use `class$' form.
(ObjectClass, ErrorClass, ClassClass, MethodClass, FieldClass,
ConstructorClass): Likewise.
* java/lang/reflect/natMethod.cc (ObjectClass): Use `class$' form.
(ClassClass, VoidClass, ByteClass, ShortClass, CharacterClass,
IntegerClass, LongClass, FloatClass, DoubleClass): Likewise.
* java/io/natObjectInputStream.cc (ObjectClass): Use `class$'
form.
(ClassClass): Likewise.
* include/jvm.h (StringClass): Use `class$' form.
* prims.cc (ObjectClass): Removed.
(_Jv_RunMain): Use `class$' form.
(_Jv_AllocObject): Likewise.
* jni.cc (ClassClass): Use `class$' form.
(ThrowableClass): Likewise.
(ObjectClass): Likewise.
(MethodClass): Likewise.
(ThreadGroupClass): Likewise.
(NativeThreadClass): Likewise.
* boehm.cc (ObjectClass): Removed.
(ClassClass): Removed.
(_Jv_MarkObj): Use `class$' form.
* gcj/field.h (JvFieldIsRef): Use `class$' form.
Include RawData.h.
From-SVN: r36740
2000-10-06 01:49:32 +00:00
Bryce McKinlay
79c2c6da2c
[multiple changes]
...
2000-08-02 Bryce McKinlay <bryce@albatross.co.nz>
* interpret.cc (_Jv_InterpMethod::continue1): Type of `fun' changed
to match C declaration in ffi.h.
* Makefile.am: Add java/awt/Button.java.
* Makefile.in: Rebuilt.
2000-07-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Type of the
cast of the second argument to `ffi_raw_call' changed to match
prototype.
2000-07-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
* jni.cc (_Jv_JNIMethod::call): Type of the cast of the second
argument to `ffi_raw_call' changed to match prototype.
From-SVN: r35418
2000-08-02 04:25:13 +01:00
Tom Tromey
6e84eab83f
* jni.cc (_Jv_JNI_PopSystemFrame): Clear `env->ex'.
...
From-SVN: r33285
2000-04-20 17:39:30 +00:00
Tom Tromey
af98124ef9
jni.cc (_Jv_JNI_FindClass): Use system class loader if class doesn't have a loader.
...
* jni.cc (_Jv_JNI_FindClass): Use system class loader if class
doesn't have a loader.
From-SVN: r33272
2000-04-20 05:49:48 +00:00
Anthony Green
54c2f04ba0
JVMPI changes...
...
Sun Apr 2 08:27:18 2000 Anthony Green <green@redhat.com>
* configure: Rebuilt.
* configure.in: Add --disable-jvmpi.
* include/config.h.in: Rebuilt.
* acconfig.h: Add ENABLE_JVMPI.
* include/jvm.h: Declare _Jv_DisableGC and _Jv_EnableGC.
(_Jv_JVMPI_Notify_OBJECT_ALLOC): New define.
(_Jv_JVMPI_Notify_THREAD_END): New define.
(_Jv_JVMPI_Notify_THREAD_END): New define.
* prims.cc (_Jv_JVMPI_Notify_OBJECT_ALLOC): Declare.
(_Jv_JVMPI_Notify_THREAD_END): Declare.
(_Jv_JVMPI_Notify_THREAD_END): Declare.
* prims.cc (_Jv_AllocObject): Generate JVMPI object allocation
events.
* java/lang/natThread.cc: Include JVMPI headers if necessary.
(finish_): Generate JVMPI thread end events.
(run_): Generate JVMPI thread start events.
* gnu/gcj/runtime/natFirstThread.cc (run): Call JNI_OnLoad for any
preloaded JNI library.
Include JVMPI headers if necessary.
(run): Generate JVMPI thread start events.
* boehm.cc: Define GC_disable and GC_enable.
(_Jv_DisableGC): New function.
(_Jv_EnableGC): New function.
(disable_gc_mutex): Declare.
* nogc.cc (_Jv_DisableGC): New function.
(_Jv_EnableGC): New function.
* jni.cc (_Jv_JNI_GetEnv): Handle JVMPI interface requests.
(_Jv_JVMPI_Interface): Define.
(jvmpiEnableEvent): New function.
(_Jv_JNI_Init): Initialize _Jv_JVMPI_Interface.
* include/jvmpi.h: New file.
From-SVN: r32866
2000-04-02 15:34:17 +00:00
Tom Tromey
4e2d1dbdd3
jni.cc (_Jv_JNI_PopSystemFrame): If environment has exception set, throw it.
...
* jni.cc (_Jv_JNI_PopSystemFrame): If environment has exception
set, throw it.
(call): Don't throw exception here.
From-SVN: r32770
2000-03-27 19:51:46 +00:00
Tom Tromey
90a883ae6b
jni.cc (mangled_name): Fixed assertion.
...
* jni.cc (mangled_name): Fixed assertion.
(JNI_GetCreatedJavaVMs): Don't comment out `buf_len' argument;
turned assert into actual failure.
From-SVN: r32546
2000-03-14 21:59:54 +00:00
Tom Tromey
2ba5f77454
All files: Updated copyright information.
...
* All files: Updated copyright information.
* COPYING: New file.
* COPYING.LIB: Removed.
* LIBGCJ_LICENSE: We now use GPL + special exception.
From-SVN: r32387
2000-03-07 19:55:28 +00:00
Tom Tromey
8d00f6171a
jni.cc (MARK_NONE): New define.
...
* jni.cc (MARK_NONE): New define.
(MARK_USER): Likewise.
(MARK_SYSTEM): Likewise.
(struct _Jv_JNI_LocalFrame): Made `marker' bigger and `size'
smaller.
(_Jv_JNI_DeleteLocalRef): Use MARK_NONE in assert.
(_Jv_JNI_EnsureLocalCapacity): Use MARK_NONE.
(_Jv_JNI_PushLocalFrame): Use MARK_USER.
(_Jv_JNI_PopLocalFrame): New version with additional `stop'
argument.
(call): Use MARK_SYSTEM.
(_Jv_GetJNIEnvNewFrame): New function.
(_Jv_LookupJNIMethod): New function.
(_Jv_JNI_PopSystemFrame): New function.
(call): Use _Jv_JNI_PopSystemFrame and _Jv_LookupJNIMethod.
From-SVN: r32373
2000-03-07 00:10:52 +00:00
Tom Tromey
b099f07de9
java-interp.h: Don't include MethodInvocation.h.
...
* include/java-interp.h: Don't include MethodInvocation.h.
(class _Jv_InterpMethod): Don't make MethodInvocation a friend.
* Makefile.in: Rebuilt.
* Makefile.am (gnu/gcj/runtime/MethodInvocation.h): Removed.
(ordinary_java_source_files): Don't mention
MethodInvocation.java.
* gnu/gcj/runtime/MethodInvocation.java: Removed.
* interpret.cc (MethodInvocation::continue1): Removed.
(run): Handle exceptions here.
* java/lang/ClassLoader.java (defineClass1, defineClass2):
Removed.
* java/lang/natClassLoader.cc (defineClass0): Catch exceptions
here.
(defineClass2): Removed.
* java/lang/reflect/Method.java (hack_trampoline, hack_call):
Removed.
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Catch
exceptions here.
(hack_call): Removed.
* java/lang/Class.h (Class): Removed hackRunInitializers,
hackTrampoline.
* java/lang/natClass.cc (hackRunInitializers): Removed.
(initializeClass): Catch exceptions here.
Include ExceptionInInitializerError.h.
* java/lang/Class.java (hackTrampoline, hackRunInitializers):
Removed.
* java/lang/Object.h (Object): Don't mention hack12_6.
* java/lang/natObject.cc (_Jv_FinalizeObject): Catch exceptions
here.
* java/lang/Object.java (hack12_6): Removed.
* java/lang/natThread.cc (run_): Renamed. Catch exceptions here.
(start): Use run_, not run__.
* java/lang/Thread.java (run_): Renamed from run__; old run_
removed.
* jni.cc (_Jv_JNI_FindClass): Handle exceptions.
(_Jv_JNI_EnsureLocalCapacity): Likewise.
(_Jv_JNI_DefineClass): Likewise.
(_Jv_JNI_ThrowNew): Likewise.
(_Jv_JNI_AllocObject): Likewise.
(_Jv_JNI_GetAnyMethodID): Likewise.
(_Jv_JNI_CallAnyMethodV): Likewise.
(_Jv_JNI_CallAnyMethodA): Likewise.
(_Jv_JNI_CallAnyVoidMethodV): Likewise.
(_Jv_JNI_CallAnyVoidMethodA): Likewise.
(_Jv_JNI_GetAnyFieldID): Likewise.
(_Jv_JNI_NewString): Likewise.
(_Jv_JNI_NewStringUTF): Likewise.
(_Jv_JNI_GetStringUTFChars): Likewise.
(_Jv_JNI_NewObjectArray): Likewise.
(_Jv_JNI_NewPrimitiveArray): Likewise.
(_Jv_JNI_GetPrimitiveArrayRegion): Likewise.
(_Jv_JNI_GetStringRegion): Likewise.
(_Jv_JNI_GetStringUTFRegion): Likewise.
(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
(_Jv_JNI_MonitorEnter): Likewise.
(_Jv_JNI_MonitorExit): Likewise.
(_Jv_JNI_ToReflectedField): Likewise.
(_Jv_JNI_ToReflectedMethod): Likewise.
(_Jv_JNI_RegisterNatives): Likewise.
(_Jv_JNI_AttachCurrentThread): Likewise.
(_Jv_JNI_DestroyJavaVM): Likewise.
From-SVN: r32294
2000-03-02 20:25:20 +00:00
Anthony Green
e1b1511329
Minor clean up and bug fix.
...
From-SVN: r32196
2000-02-26 21:12:54 +00:00
Tom Tromey
ac52f669c5
jni.cc (_Jv_JNI_RegisterNatives): Conditionalize body on `INTERPRETER'.
...
* jni.cc (_Jv_JNI_RegisterNatives): Conditionalize body on
`INTERPRETER'.
From-SVN: r32156
2000-02-25 23:49:34 +00:00
Tom Tromey
8ade47715e
jvm.h (_Jv_GetJavaVM): Declare.
...
* include/jvm.h (_Jv_GetJavaVM): Declare.
* include/java-interp.h (_Jv_GetFirstMethod): New function.
(_Jv_MethodBase::get_method): New method.
(_Jv_JNIMethod::set_function): New method.
* jni.cc (_Jv_JNI_UnregisterNatives): New function.
(_Jv_JNI_RegisterNatives): New function.
(_Jv_JNIFunctions): Updated for new functions.
(_Jv_GetJavaVM): New function.
(_Jv_JNI_GetJavaVM): Use it. Now static.
(_Jv_JNI_AttachCurrentThread): Create a new JNIEnv if this thread
is already a Java thread but does not have a JNIEnv yet.
* java/lang/natRuntime.cc (_load): Pass the JavaVM to the onload
function.
From-SVN: r32056
2000-02-18 21:22:06 +00:00
Tom Tromey
5ef57049f9
* jni.cc (_Jv_JNI_CallStaticMethodV): Added some assertions.
...
From-SVN: r32021
2000-02-17 00:54:34 +00:00
Tom Tromey
1adbc4d8be
jni.cc (_Jv_JNI_NewObjectV): Corrected assertion.
...
* jni.cc (_Jv_JNI_NewObjectV): Corrected assertion.
(_Jv_JNI_NewObject): Likewise.
(_Jv_JNI_NewObjectA): Likewise.
(_Jv_JNI_CallAnyMethodV): In constructor case, pass correct value
as "return" type to _Jv_CallAnyMethodA.
(_Jv_JNI_CallAnyMethodA): Likewise.
(_Jv_JNI_CallAnyVoidMethodV): Likewise.
From-SVN: r32017
2000-02-16 22:42:41 +00:00
Tom Tromey
d77a164002
jni.cc (_Jv_JNI_FindClass): Use ClassLoader.loadClass, not findClass.
...
* jni.cc (_Jv_JNI_FindClass): Use ClassLoader.loadClass, not
findClass.
From-SVN: r32013
2000-02-16 18:42:48 +00:00
Tom Tromey
d348bda453
resolve.cc (ncode): Set args_raw_size.
...
* resolve.cc (ncode): Set args_raw_size. Compute jni_cif and
jni_arg_types.
(init_cif): Added `rtype_p' argument.
* include/java-interp.h (class _Jv_MethodBase): Added
args_raw_size.
(class _Jv_InterpMethod): Removed args_raw_size.
(class _Jv_JNIMethod): Added jni_cif and jni_arg_types fields.
* jni.cc (call): Pass JNIEnv and (for static methods only) the
class pointer as well as the ordinary arguments.
From-SVN: r31995
2000-02-16 00:07:34 +00:00
Tom Tromey
cdd59e7bdf
* jni.cc (mangled_name): Skip leading `(' in signature.
...
From-SVN: r31993
2000-02-15 22:59:23 +00:00
Tom Tromey
abfb784400
* jni.cc (add_char): Added missing `else'.
...
From-SVN: r31991
2000-02-15 22:42:10 +00:00
Tom Tromey
2d759f7165
jni.cc (_Jv_JNI_AttachCurrentThread): Return error if malloc fails.
...
* jni.cc (_Jv_JNI_AttachCurrentThread): Return error if malloc
fails.
From-SVN: r31986
2000-02-15 20:39:36 +00:00
Tom Tromey
aaf0766e9f
natNativeThread.cc: New file.
...
* gnu/gcj/jni/natNativeThread.cc: New file.
* gnu/gcj/jni/NativeThread.java: New file.
* java/lang/Thread.java (data): Now a RawData.
* include/jvm.h (_Jv_GetCurrentJNIEnv, _Jv_SetCurrentJNIEnv):
Declare.
* Makefile.in: Rebuilt.
* Makefile.am (java/lang/Thread.h): New target.
(ordinary_java_source_files): Added NativeThread.java.
(nat_source_files): Added natNativeThread.cc.
* java/lang/natThread.cc: Include <jni.h>
(struct natThread): Added `jni_env' field.
(_Jv_GetCurrentJNIEnv): New function.
(_Jv_SetCurrentJNIEnv): Likewise.
(initialize_native): Initialize jni_env.
Include RawData.h.
* jni.cc (ThreadGroupClass): New define.
(_Jv_JNI_InvokeFunctions): New structure.
(JNI_GetCreatedJavaVMs): New function.
(the_vm): New global.
(JNI_GetDefaultJavaVMInitArgs): New function.
Include NativeThread.h.
(NativeThreadClass): New define.
(_Jv_JNI_EnsureLocalCapacity): Return JNI_ERR, not -1.
(_Jv_JNI_DestroyJavaVM): New function.
(_Jv_JNI_AttachCurrentThread): New function.
(_Jv_JNI_DetachCurrentThread): New function.
(_Jv_JNI_GetEnv): New function.
(JNI_CreateJavaVM): New function.
(_Jv_JNI_GetJavaVM): New function.
(_Jv_JNIFunctions): Added entry for GetJavaVM.
* include/jni.h (JavaVMAttachArgs): New structure.
(JNI_EDETACHED): New define.
(JNI_EVERSION): Likewise.
(JavaVM): Define properly.
(struct JNIInvokeInterface): New structure.
(class _Jv_JavaVM): New class.
(JNI_OnLoad, JNI_OnUnload): Declare.
(JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM,
JNI_GetCreatedJavaVMs): Declare.
(JavaVMInitArgs): New typedef.
(JavaVMOption): Likewise.
(JNI_ERR): New define.
(JNI_OK): Likewise.
From-SVN: r31901
2000-02-10 20:31:48 +00:00
Tom Tromey
278abd2849
jni.cc (ThrowableClass): New define.
...
* jni.cc (ThrowableClass): New define.
(_Jv_JNI_Throw): Check argument.
(_Jv_JNI_ThrowNew): Likewise.
(wrap_value): Don't wrap object if it is NULL.
(_Jv_JNI_DefineClass): Use wrap_value.
(_Jv_JNI_FindClass): Likewise.
(_Jv_JNI_GetSuperclass): Likewise.
(_Jv_JNI_ExceptionOccurred): Likewise.
(_Jv_JNI_AllocObject): Likewise.
(_Jv_JNI_GetObjectClass): Likewise.
(_Jv_JNI_NewString): Likewise.
(_Jv_JNI_NewStringUTF): Likewise.
(_Jv_JNI_NewObjectArray): Likewise.
(_Jv_JNI_GetObjectArrayElement): Likewise.
(_Jv_JNI_NewPrimitiveArray): Likewise.
(_Jv_JNI_ToReflectedField): Likewise.
(_Jv_JNI_ToReflectedMethod): Likewise.
(_Jv_JNI_AllocObject): Check argument.
(_Jv_JNI_NewObjectV): Likewise.
(_Jv_JNI_NewObject): Likewise.
(_Jv_JNI_NewObjectA): Likewise.
(_Jv_JNI_GetObjectClass): Likewise.
(_Jv_JNI_GetField): Likewise.
(_Jv_JNI_SetField): Likewise.
From-SVN: r31845
2000-02-08 00:23:09 +00:00
Tom Tromey
f39b788a15
jni.cc (add_char): Conditional on INTERPRETER.
...
* jni.cc (add_char): Conditional on INTERPRETER.
(mangled_name): Likewise.
(call): Likewise.
* include/java-interp.h (class _Jv_MethodBase): Conditional on
INTERPRETER.
(class _Jv_JNIMethod): Likewise.
From-SVN: r31839
2000-02-07 21:17:30 +00:00
Tom Tromey
facc279fc1
defineclass.cc (handleMethodsBegin): Allocate _Jv_MethodBase pointers.
...
* defineclass.cc (handleMethodsBegin): Allocate _Jv_MethodBase
pointers.
(handleMethodsEnd): Fixed error messages. Create a _Jv_JNIMethod
if the method is native.
* resolve.cc (ncode): Don't handle native methods.
(_Jv_JNIMethod::ncode): New method.
(_Jv_PrepareClass): Handle native methods.
* jni.cc (call): Renamed from _Jv_JNI_conversion_call.
Include AbstractMethodError.h.
(add_char): New function.
(mangled_name): Likewise.
* include/java-interp.h (class _Jv_JNIMethod): New class.
(class _Jv_MethodBase): New class.
(class _Jv_InterpMethod): Derive from _Jv_MethodBase.
(_Jv_InterpClass): Changed `interpreted_methods' field to type
`_Jv_MethodBase'.
* include/jvm.h (_Jv_FindSymbolInExecutable): Declare.
* java/lang/natRuntime.cc (libraries_size, libraries_count,
libraries): New globals.
(add_library): New function.
(_Jv_FindSymbolInExecutable): New function.
* java/lang/natClassLoader.cc (initiated_classes, loaded_classes):
Now static.
From-SVN: r31790
2000-02-04 20:49:27 +00:00
Tom Tromey
ee6713e782
java-interp.h (_Jv_JNI_conversion_call): Declare.
...
* include/java-interp.h (_Jv_JNI_conversion_call): Declare.
* resolve.cc (ncode): Use _Jv_JNI_conversion_call when
constructing the closure if the function is native.
* jni.cc (_Jv_JNI_conversion_call): Now returns `void'. No longer
a template function, #if'd out, or static.
Include <java-interp.h>.
From-SVN: r31746
2000-02-02 01:55:03 +00:00