Commit Graph

118 Commits

Author SHA1 Message Date
Matthias Klose
e0441a5bfb Import GNU Classpath (classpath-0_97_2-release).
libjava/

2008-06-28  Matthias Klose  <doko@ubuntu.com>

        Import GNU Classpath (classpath-0_97_2-release).

        * Regenerate class and header files.
        * Regenerate auto* files.
        * gcj/javaprims.h: Define jobjectRefType.
        * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only).
        (_Jv_JNIFunctions): Initialize GetObjectRefType.
        * gnu/classpath/jdwp/VMVirtualMachine.java,
        java/security/VMSecureRandom.java: Merge from classpath.
        * HACKING: Fix typo.
        * ChangeLog-2007: New file.
        * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath.

libjava/classpath/

2008-06-28  Matthias Klose  <doko@ubuntu.com>

        * m4/ac_prog_javac.m4: Disable check for JAVAC, when
        not configured with --enable-java-maintainer-mode.
        * aclocal.m4, configure: Regenerate.
        * native/jni/gstreamer-peer/Makefile.am: Do not link with
        libclasspathnative.
        * native/jni/gstreamer-peer/Makefile.in: Regenerate.
        * tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting
        JCOMPILER, drop flags not understood by gcj.

From-SVN: r137223
2008-06-28 13:29:13 +00:00
Tom Tromey
476924c9e0 re PR libgcj/35979 (JNI method NewStringUTF throws NPE when passed a NULL pointer)
PR libgcj/35979:
	* jni.cc (_Jv_JNI_NewStringUTF): Return NULL if bytes==NULL.

From-SVN: r134471
2008-04-19 21:35:02 +00:00
David Daney
4c42b3d84f ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already defined.
2007-12-06  David Daney  <ddaney@avtrex.com>

	* include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not	already
	defined.
	(ffi_java_raw): New typedef.
	(ffi_java_raw_call, ffi_java_ptrarray_to_raw,
	ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to
	ffi_java_raw.
	(ffi_java_raw_closure) : Same.
	(ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change
	parameter types.
	* src/java_raw_api.c (ffi_java_raw_size):  Replace FFI_SIZEOF_ARG with
	FFI_SIZEOF_JAVA_RAW.
	(ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw.
	Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use
	sizeof(ffi_java_raw) for alignment calculations.
	(ffi_java_ptrarray_to_raw): Same.
	(ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER
        if FFI_SIZEOF_JAVA_RAW == 4.
	(ffi_java_raw_to_rvalue): Same.
	(ffi_java_raw_call): Change type of raw to ffi_java_raw.
	(ffi_java_translate_args): Same.
	(ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change
	parameter types.
	* src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI.

2007-12-06  David Daney  <ddaney@avtrex.com>

	* interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout.
	(ncode_closure, ffi_closure_fun): Define versions for
	non-FFI_NATIVE_RAW_API case.
	* include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to
	replace	ffi_raw throughout.
	* jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE
	throughout.

From-SVN: r130660
2007-12-06 22:02:22 +00:00
Matthias Klose
f06a83c0b2 Import GNU Classpath (libgcj-import-20070727).
libjava/

2007-08-04  Matthias Klose  <doko@ubuntu.com>

	Import GNU Classpath (libgcj-import-20070727).

	* Regenerate class and header files.
	* Regenerate auto* files.

	* include/jvm.h:
	* jni-libjvm.cc (Jv_JNI_InvokeFunctions): Rename type.
	* jni.cc (_Jv_JNIFunctions, _Jv_JNI_InvokeFunctions): Likewise.
	* jni.cc (_Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodA,
	_Jv_JNI_CallMethodA, _Jv_JNI_CallVoidMethodA,
	_Jv_JNI_CallStaticMethodA, _Jv_JNI_CallStaticVoidMethodA,
	_Jv_JNI_NewObjectA, _Jv_JNI_SetPrimitiveArrayRegion): Constify
	jvalue parameter.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise.

	* java/lang/VMFloat.java (toString, parseFloat): New.

	* gnu/awt/xlib/XToolkit.java (setAlwaysOnTop, isModalityTypeSupported,
	isModalExclusionTypeSupported): New (stub only).
	* gnu/awt/xlib/XCanvasPeer.java (requestFocus): Likewise.
	* gnu/awt/xlib/XFramePeer.java (updateMinimumSize, updateIconImages,
	updateFocusableWindowState, setModalBlocked, getBoundsPrivate,
	setAlwaysOnTop): Likewise.
	* gnu/awt/xlib/XFontPeer.java (canDisplay): Update signature.

	* scripts/makemake.tcl: Ignore gnu/javax/sound/sampled/gstreamer,
	ignore javax.sound.sampled.spi.MixerProvider, ignore .in files.

	* HACKING: Mention --enable-gstreamer-peer, removal of generated files.


libjava/classpath/

2007-08-04  Matthias Klose  <doko@ubuntu.com>

	* java/util/EnumMap.java (clone): Add cast.

From-SVN: r127204
2007-08-04 10:53:49 +00:00
David Daney
86acf60c5b configure.ac (INTERPRETER): New AM_CONDITIONAL.
* configure.ac (INTERPRETER): New AM_CONDITIONAL.
	* scripts/makemake.tcl (package_map): Mark jdwp and jvmti packages
	as being for interpreter only.  Place interpreter related files in
	'if INTERPRETER' block.
	(interpreter_package_files): New list.
	(interpreter_header_vars): Ditto.
	(emit_package_rule_to_list): Renamed from emit_package_rule with
	new target list parameter.
	(emit_package_rule): Rewritten to call emit_package_rule_to_list.
	(emit_interpreter_rule): New function.
	(emit_source_var): Place interpreter related files in
	interpreter_header_vars.
	* Makefile.am (ACLOCAL_AMFLAGS): Add -I libltdl.
	(libgcj_interpret_source_files): New variable.
	(libgcj_la_SOURCES): Move jvmti.cc and  interpret.cc to
	libgcj_interpret_source_files and include
	libgcj_interpret_source_files.
	(nat_jdwp_source_files): New variable.
	(nat_jvmti_source_files): Ditto.
	(nat_source_files): Move jdwp and jvmti related files to
	nat_jdwp_source_files and nat_jvmti_source_files and include
	nat_jdwp_source_files and nat_jvmti_source_files.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Ditto.
	* testsuite/Makefile.in: Ditto.
	* gcj/Makefile.in: Ditto.
	* sources.am: Ditto.
	* configure: Ditto.
	* include/config.h.in: Ditto.
	* interpret.cc: Remove #ifdef INTERPRETER block.
	* stacktrace.cc (UnwindTraceFn): Do not handle proxy frames if
	interpreter disabled.
	* include/java-interp.h (_Jv_FrameType): Move outside of
	#ifdef INTERPRETER block.
	* include/execution.h (_Jv_IndirectCompiledEngine::do_get_closure_list,
	_Jv_InterpreterEngine, _Jv_soleInterpreterEngine): Place in
	#ifdef INTERPRETER block.
	* jni.cc (jvmti.h, jvmti-int.h):  Only include if INTERPRETER is
	defined.
	(_Jv_JNI_PopSystemFrame, _Jv_JNI_GetEnv): Only do jvmti processing
	if INTERPRETER is defined.
	* prims.cc (jvmti.h, jvmti-int.h, Jdwp.h, VMVirtualMachine.h):  Only
	include if INTERPRETER is defined.
	(defaultJdwpOptions, jdwpOptions, jvmti_agent_onload_func,
	jvmti_agent_onunload_func, jvmti_agentonload, jvmti_agentonunload,
	jvmti_agent_opts, load_jvmti_agent): Only define if INTERPRETER is
	defined.
	(parse_x_arg): Only process 'runjdwp:' if INTERPRETER is defined.
	(parse_init_args): Only process jvmti related options if
	INTERPRETER is defined.
	(_Jv_CreateJavaVM): Only call _Jv_JVMTI_Init if INTERPRETER is
	defined.
	(_Jv_RunMain): Only do jvmti and jdwp processing if INTERPRETER is
	defined.
	* link.cc (jvmti.h, jvmti-int.h):  Only include if INTERPRETER is
	defined.
	(_Jv_ThrowNoClassDefFoundError, _Jv_Linker::create_error_method):
	Define if if INTERPRETER is not defined.
	(_Jv_Linker::wait_for_state): Only do jvmti proccessing if
	INTERPRETER is defined.
	* boehm.cc (closure_list_pointer, finalize_closure_list,
	_Jv_ClosureListFinalizer): Only define if INTERPRETER is
	defined.
	* java/lang/natThread.cc (jvmti.h, jvmti-int.h):  Only include if
	INTERPRETER is defined.
	(finish_, _Jv_NotifyThreadStart): Only do jvmti proccessing if
	INTERPRETER is defined.
	* java/lang/Class.h (_Jv_InterpreterEngine): Move declaration
	and friend declaration inside #ifdef INTERPRETER block.
	* java/lang/natClass.cc (_Jv_ClosureList::releaseClosures,
	_Jv_ClosureList::registerClosure, _Jv_GetInterpClassSourceFile):
	Only define if INTERPRETER is defined.
	* java/lang/reflect/natVMProxy.cc (UnsupportedOperationException.h):
	Include.
	(generateProxyClass): Throw UnsupportedOperationException unless
	INTERPRETER is defined.

From-SVN: r127097
2007-07-31 16:17:21 +00:00
Keith Seitz
befd756626 jvmti-int.h (_Jv_ReportJVMTIExceptionThrow): Declare.
* include/jvmti-int.h (_Jv_ReportJVMTIExceptionThrow):
        Declare.
        * interpret.cc (_Jv_ReportJVMTIExceptionThrow): New function.
        (find_catch_location): New function.
        (REPORT_EXCEPTION): New macro.
        (throw_internal_error): Use REPORT_EXCEPTION.
        (throw_incompatible_class_change_error): Likewise.
        (throw_null_pointer_exception): Likewise.
        (throw_class_format_error): Likewise.
        * interpret-run.cc (INTERP_REPORT_EXCEPTION)[DEBUG]: Set
        to REPORT_EXCEPTION.
        (INTERP_REPORT_EXCEPTION)[!DEBUG]: Make nop.
        (insn_new): Use INTERP_REPORT_EXCEPTION.
        (insn_athrow): Likewise.
        Remove previous JVMTI exception notifications.
        Add JVMTI ExceptionCatch notificatin.
        * jni.cc (_Jv_PopSystemFrame): Notify JVMTI clients of
        exception throw.
        * gnu/gcj/jvmti/ExceptionEvent.java: Removed.
        * gnu/gcj/jvmti/ExceptionEvent.h: Removed.
        * classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: Removed.
        * gnu/classpath/jdwp/natVMVirtualMachine.cc
        (jdwpExceptionCB): New function.
        (jdwpVMInitCB): Set Exception event handler and enable.
        * sources.am: Regenerated.
        * Makefile.in: Regenerated.

From-SVN: r124406
2007-05-04 01:04:11 +00:00
Mark Wielaard
666ff4f65d Character.java: Re-merged with Classpath.
2007-03-05  Mark Wielaard  <mark@klomp.org>

	* java/lang/Character.java: Re-merged with Classpath.
	* java/lang/natString.cc (nativeCompareTo): Renamed from
	compareTo.
	* java/lang/StringBuilder.java: Re-merged with Classpath.
	* java/lang/String.java: Re-merged with Classpath.
	(nativeCompareTo): Renamed from compareTo.
	* java/lang/StringBuffer.java: Re-merged with Classpath.
	* jni.cc (_Jv_JNI_GetAnyMethodID): Split calls to append.

From-SVN: r122560
2007-03-05 17:27:44 +00:00
Marco Trudel
304237321b jni.cc (_Jv_JNI_DeleteWeakGlobalRef): Check for NULL objects.
2007-02-01 Marco Trudel <mtrudel@gmx.ch>

	* jni.cc (_Jv_JNI_DeleteWeakGlobalRef): Check for NULL objects.

From-SVN: r121699
2007-02-07 22:45:11 +00:00
Kyle Galloway
3927313117 java-interp.h: Added _Jv_Frame class and its two subclasses _Jv_InterpFrame and _Jv_NativeFrame.
2007-01-29  Kyle Galloway  <kgallowa@redhat.com>

	* include/java-interp.h:  Added _Jv_Frame class and its two
	subclasses _Jv_InterpFrame and _Jv_NativeFrame.  Also moved
	_Jv_FrameType from java-stack.h.
	* include/java-stack.h: Removed _Jv_FrameType.
	* java/lang/Thread.java: Added frame member to hold new
	composite frame stack.
	* java/lang/Thread.h: Regenerated.
	* java/lang/Thread.class: Rebuilt.
	* jni.cc (_Jv_JNIMethod::call): Push a frame onto the stack when
	calling a JNI method.
	* jvmti.cc (_Jv_JVMTI_GetStackTrace): New Method.
	(_Jv_JVMTI_GetFrameCount): New method.
	* stacktrace.cc (UnwindTraceFn): Modified to use new _Jv_Frame
	classes.
	* testsuite/libjava.jvmti/interp/getstacktrace.jar: New test.
	* testsuite/libjava.jvmti/interp/natgetstacktrace.cc: New test.
	* testsuite/libjava.jvmti/interp/getstacktrace.h: New test.
	* testsuite/libjava.jvmti/interp/getstacktrace.jar: New test.
	* testsuite/libjava.jvmti/interp/getstacktrace.out: Output file
	for test.

From-SVN: r121314
2007-01-29 22:05:56 +00:00
Tom Tromey
262fa8a4b5 re PR java/29812 (env->klass value is not updated during the native calls)
PR java/29812:
	* testsuite/libjava.jni/pr29812.java: New file.
	* testsuite/libjava.jni/pr29812_injar.java: New file.
	* testsuite/libjava.jni/pr29812_injar.jar: New file.
	* testsuite/libjava.jni/pr29812.out: New file.
	* testsuite/libjava.jni/pr29812_injar.c: New file.
	* testsuite/libjava.jni/pr29812_injar.h: New file.
	* testsuite/libjava.jni/pr29812.jar: New file.
	* testsuite/libjava.jni/pr29812.c: New file.
	* testsuite/libjava.jni/pr29812.h: New file.
	* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
	New proc.
	(gcj_jni_invocation_test_one): Use it.
	(gcj_jni_pr29812): New proc.
	(gcj_jni_run): Use it.
	* java/lang/natRuntime.cc (_load): Push a new system frame before
	calling JNI_OnLoad.
	* include/jvm.h (_Jv_JNI_PopSystemFrame): Declare.
	(_Jv_GetJNIEnvNewFrameWithLoader): Likewise.
	* jni.cc (struct _Jv_JNI_LocalFrame) <marker>: Now unsigned char.
	<allocated_p>: Now bool.
	<loader>: New field.
	(_Jv_JNI_EnsureLocalCapacity): Updated.
	(_Jv_JNI_NewLocalRef): Likewise.
	(_Jv_JNI_NewLocalRef): Likewise.
	(_Jv_JNI_PopLocalFrame): Likewise.
	(_Jv_JNI_FindClass): Likewise.
	(_Jv_GetJNIEnvNewFrame): Likewise.
	(_Jv_JNI_AttachCurrentThread): Likewise.
	(_Jv_GetJNIEnvNewFrameWithLoader): New function.
	(_Jv_GetJNIEnvNewFrame): Use it.
	* include/jni_md.h (_CLASSPATH_JNIENV_CONTENTS): Removed 'klass'.

From-SVN: r121064
2007-01-22 23:04:16 +00:00
Marco Trudel
7896beb27a jni.cc (_Jv_JNI_FindClass): Initialize class.
2007-01-18  Marco Trudel  <mtrudel@gmx.ch>

	* jni.cc (_Jv_JNI_FindClass): Initialize class.
	* testsuite/libjava.jni/findclass2.jar: New file.
	* testsuite/libjava.jni/findclass2.h: New file.
	* testsuite/libjava.jni/findclass2.java: New file
	* testsuite/libjava.jni/findclass2.c: New file.
	* testsuite/libjava.jni/findclass2.out: New file.

From-SVN: r120930
2007-01-18 20:47:50 +00:00
Tom Tromey
e7f7d23387 register2.java: New file.
* testsuite/libjava.jni/register2.java: New file.
	* testsuite/libjava.jni/register2.out: New file.
	* testsuite/libjava.jni/register2.c: New file.
	* java/lang/natClass.cc (_Jv_GetClassNameUtf8): New function.
	* java/lang/Class.h (_Jv_GetClassNameUtf8): Declare.
	* jni.cc (struct NativeMethodCacheEntry): New struct.
	(nathash): Changed type.
	(hash): Updated.
	(nathash_find_slot): Likewise.
	(nathash_find): Likewise.
	(natrehash): Likewise.
	(nathash_add): Likewise.
	(_Jv_JNI_RegisterNatives): Likewise.
	(_Jv_LookupJNIMethod): Likewise.
	Idea from Juerg Lehni <juerg@scratchdisk.com>

Co-Authored-By: Bryce McKinlay <mckinlay@redhat.com>

From-SVN: r117867
2006-10-18 23:17:04 +00:00
Keith Seitz
94f473ee2c jvm.h (_Jv_GetJVMTIEnv): Declare.
* include/jvm.h (_Jv_GetJVMTIEnv): Declare.
        * jni.cc (_Jv_JNI_GetEnv): Handle JVMTI requests.
        * jvmti.cc: New file.
        * Makefile.am (libgcj_la_SOURCES): Add jvmti.cc.
        * Makefile.in: Regenerate.

From-SVN: r115629
2006-07-20 19:30:30 +00:00
Tom Tromey
10caa6ef96 re PR libgcj/28178 (jniEnv->DeleteLocalRef (null) fails)
PR libgcj/28178:
	* jni.cc (_Jv_JNI_DeleteLocalRef): Ignore null argument.
	(_Jv_JNI_DeleteGlobalRef): Likewise.
	* testsuite/libjava.jni/PR28178.java: New file.
	* testsuite/libjava.jni/PR28178.c: New file.
	* testsuite/libjava.jni/PR28178.out: New file.

From-SVN: r115034
2006-06-27 15:33:24 +00:00
Thomas Fitzsimmons
fb5b5d977f Makefile.am (AM_CXXFLAGS): Define GCJ_VERSIONED_LIBDIR to "$(dbexecdir)".
2006-06-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (AM_CXXFLAGS): Define GCJ_VERSIONED_LIBDIR to
	"$(dbexecdir)".
	Build libjvm.la.
	* Makefile.in: Regenerate.
	* jni.cc (the_vm): Rename and export as ...
	(_Jv_the_vm): New exported symbol.
	(_Jv_JNI_AttachCurrentThread): Export.
	(_Jv_JNI_DestroyJavaVM): Replace the_vm references with _Jv_the_vm
	references.
	(_Jv_GetJavaVM): Likewise.
	(JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM,
	JNI_GetCreatedJavaVMs): Move to ...
	* jni-libjvm.cc: New file.

From-SVN: r114824
2006-06-20 19:25:32 +00:00
Bryce McKinlay
1349c68851 re PR libgcj/25187 (dereferencing type-punned pointer warnings while building libgcj)
2006-02-08  Bryce McKinlay  <mckinlay@redhat.com>

        PR libgcj/25187:
        * gnu/gcj/io/natSimpleSHSStream.cc
        (gnu::gcj::io::SimpleSHSStream::shsFinal): Remove bogus cast.
        * interpret.cc (_Jv_InterpMethod::run): Simplify arguments to
        _Jv_InterpFrame().
        * boehm.cc: #undef some autoconf macros before including gc-config.h.
        (_Jv_MarkObject): Don't mark the class, it is reachable via the vtable.
        (_Jv_MarkArray): Likewise.
        * java/lang/ref/natReference.cc (java::lang::ref::Reference::create):
        Simplify _Jv_GCRegisterDisappearingLink() call.
        * java/lang/Class.h (getComponentType): Use element_type.
        (element_type): New field declaration, as a union with "methods".
        * java/lang/natClassLoader.cc (_Jv_NewArrayClass): Use "element_type".
        * java/net/natVMNetworkInterfacePosix.cc
        (java::net::VMNetworkInterface::getInterfaces): Add "int" cast to
        avoid sign comparison warning.
        * include/java-interp.h (_Jv_InterpFrame): Take thread as second
        argument, not parent call frame.
        * include/x86_64-signal.h (MAKE_THROW_FRAME): Use "gregs" directly,
        without a cast.
        (restore_rt): Declare with hidden visibility, not "static".
        * posix.cc (_Jv_platform_initProperties): Make "tmpdir" a string
        constant.
        * jni.cc (_Jv_JNI_DestroyJavaVM): Use a union to avoid strict alias
        warning

From-SVN: r110783
2006-02-09 01:35:33 +00:00
Tom Tromey
ec5dd52b37 jni.cc (_Jv_JNI_AttachCurrentThread): Return environment if it already exists.
* jni.cc (_Jv_JNI_AttachCurrentThread): Return environment if it
	already exists.

From-SVN: r109936
2006-01-19 00:57:00 +00:00
Tom Tromey
3141ed0fe0 re PR java/18278 (JNI functions cannot return a weak reference)
gcc/java:
	PR java/18278:
	* expr.c (build_jni_stub): Unwrap the return value.
	* java-tree.h (soft_unwrapjni_node): New define.
	(enum java_tree_index): Added JTI_SOFT_UNWRAPJNI_NODE.
	* decl.c (java_init_decl_processing): Initialize
	soft_unwrapjni_node.
libjava:
	PR java/18278:
	* testsuite/libjava.jni/pr18278.out: New file.
	* testsuite/libjava.jni/pr18278.c: New file.
	* testsuite/libjava.jni/pr18278.java: New file.
	* include/jvm.h (_Jv_UnwrapJNIweakReference): Declare.
	* jni.cc (_Jv_UnwrapJNIweakReference): New function.
	(call): Unwrap return value if needed.

From-SVN: r107676
2005-11-29 18:34:58 +00:00
Tom Tromey
852993e381 re PR libgcj/23739 (JNI: IsAssignableFrom reverses arguments)
PR libgcj/23739:
	* testsuite/libjava.jni/pr23739.c: New file.
	* testsuite/libjava.jni/pr23739.java: New file.
	* testsuite/libjava.jni/pr23739.out: New file.
	* jni.cc (_Jv_JNI_IsAssignableFrom): Reversed arguments.
	* java/lang/reflect/natMethod.cc (invoke): Updated.
	* java/lang/natClass.cc (isAssignableFrom): Updated.
	(isInstance): Likewise.
	(_Jv_IsAssignableFrom): Reversed arguments.
	(_Jv_IsInstanceOf): Updated.
	(_Jv_CheckCast): Likewise.
	(_Jv_CheckArrayStore): Likewise.
	(_Jv_IsAssignableFromSlow): Reversed arguments.
	(_Jv_InterfaceAssignableFrom): Likewise.
	* link.cc (verify_type_assertions): Updated.
	* prims.cc (_Jv_CheckAccess): Updated.

From-SVN: r103953
2005-09-06 16:01:31 +00:00
Jim Huang
a61d70b8b5 re PR libgcj/22036 (libjava/jni.cc compilation fix in cvs 2005-06-12)
2005-06-13  Jim Huang  <jserv@kaffe.org>

	PR libgcj/22036:
	* jni.cc (_Jv_JNI_NewObjectV): Use chars() method.
	(_Jv_JNI_NewObject): Likewise.

From-SVN: r100897
2005-06-13 20:23:11 +00:00
Andrew Haley
88b886f54f re PR libgcj/21020 (java.lang.NoSuchFieldError regression from earlier 4.0.0 snapshot)
2005-04-26  Andrew Haley  <aph@redhat.com>

	PR libgcj/21020:
	* jni.cc (_Jv_JNI_GetAnyFieldID): Use class' loader to find
	field's type.

From-SVN: r98789
2005-04-26 20:52:34 +00:00
Anthony Green
f00fac9d2f jni.cc (natrehash): Don't bother clearing memory again.
2005-04-22  Anthony Green  <green@redhat.com>

        * jni.cc (natrehash): Don't bother clearing memory again.
        * interpret.cc (do_allocate_static_fields): Ditto.
        * java/lang/natString.cc (rehash): Ditto.

From-SVN: r98583
2005-04-22 19:02:41 +00:00
Tom Tromey
8b6e769053 jni.cc (_Jv_JNI_GetAnyFieldID): Throw ClassNotFoundException.
* jni.cc (_Jv_JNI_GetAnyFieldID): Throw ClassNotFoundException.
	* java/lang/reflect/natMethod.cc (_Jv_GetTypesFromSignature):
	Rewrote to use _Jv_FindClassFromSignature.
	* verify.cc (resolve): throw NoClassDefFoundError.
	* link.cc (resolve_field): Throw NoClassDefFoundError.
	(find_field): Likewise.
	* prims.cc (_Jv_FindClassFromSignature): Removed recursion.
	Handle error cases.  Added 'endp' argument.
	* include/jvm.h (_Jv_FindClassFromSignature): Updated prototype.

From-SVN: r97660
2005-04-05 22:26:26 +00:00
Thomas Fitzsimmons
bc71e4a22b re PR libgcj/16923 (-D* Options passed to JNI_CreateJavaVM are ignored)
2005-02-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR libgcj/16923
	* gcj.texi (Invocation): Add descriptions of JvVMInitArgs and
	JvVMOption.

2005-02-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR libgcj/16923
	* jni.cc (JNI_CreateJavaVM): Check JNI version.  Cast args to
	JvVMInitArgs.  Pass args to _Jv_CreateJavaVM and check return
	value.  Move argument parsing code to prims.cc.
	* prims.cc (no_properties): Remove.
	(_Jv_Compiler_Properties): Initialize to NULL.
	(_Jv_Properties_Count): Initialize to 0.
	(parse_verbose_args): New function.
	(parse_init_args): New function.
	(_Jv_CreateJavaVM): Call parse_init_args.
	(_Jv_RunMain): Check return value of _Jv_CreateJavaVM.
	* gcj/cni.h (JvVMOption): New struct.
	(JvVMInitArgs): Likewise.
	(JvCreateJavaVM): Declare vm_args as JvVMInitArgs* rather than
	void*.
	* libjava/gcj/javaprims.h (_Jv_VMOption): New struct.
	(_Jv_VMInitArgs): Likewise.
	* include/java-props.h (_Jv_Properties_Count): Declare.
	* java/lang/natRuntime.cc (insertSystemProperties): Use
	_Jv_Properties_Count in for loop exit condition.
	* testsuite/libjava.jni/jni.exp
	(gcj_invocation_compile_c_to_binary): New procedure.
	(gcj_invocation_test_one): Likewise.
	(gcj_jni_run): Run JNI invocation API tests.
	* testsuite/libjava.jni/invocation/PR16923.c,
	testsuite/libjava.jni/invocation/PR16923.java,
	testsuite/libjava.jni/invocation/PR16923.out: New test.

From-SVN: r95459
2005-02-23 17:36:26 +00:00
Anthony Green
f1b2b25ccf jni.cc (nathash_add): Don't strdup the method signature.
2005-02-13  Anthony Green  <green@redhat.com>

        * jni.cc (nathash_add): Don't strdup the method signature.
        (_Jv_JNI_RegisterNatives): Convert the slashes to dots in the
        method signature.
        Update copyright.

From-SVN: r95010
2005-02-14 13:51:29 +00:00
Graydon Hoare
84973b27e8 jni.h (_Jv_JNIEnv::bottom_locals): New field.
2005-01-13  Graydon Hoare  <graydon@redhat.com>

	* include/jni.h (_Jv_JNIEnv::bottom_locals): New field.
	* include/jvm.h (_Jv_FreeJNIEnv): Declare.
	* java/lang/natThread.cc (finalize_native): Call _Jv_FreeJNIEnv.
	* jni.cc: Reuse bottom frame between calls, avoid clearing
	frame when no local references are made.

From-SVN: r93632
2005-01-14 07:36:27 +00:00
Michael Koch
d2ba8a75ef re PR libgcj/18115 (JNI nio buffer functions only work with byte buffers)
2005-01-07  Michael Koch  <konqueror@gmx.de>

	PR libgcj/18115
	* java/nio/Buffer.java (address): New field.
	* java/nio/DirectByteBufferImpl.java (address): Removed.
	* java/nio/MappedByteBufferImpl.java (address): Likewise.
	* java/nio/CharViewBufferImpl.java (CharViewBufferImpl):
	Explicitly initialize Buffer.address if needed.
	* java/nio/DoubleViewBufferImpl.java (DoubleViewBufferImpl): Likewise.
	* java/nio/FloatViewBufferImpl.java (FloatViewBufferImpl): Likewise.
	* java/nio/IntViewBufferImpl.java (IntViewBufferImpl): Likewise.
	* java/nio/LongViewBufferImpl.java (LongViewBufferImpl): Likewise.
	* java/nio/ShortViewBufferImpl.java (ShortViewBufferImpl): Likewise.
	* jni.cc (_Jv_JNI_GetDirectBufferAddress): Don't assume buffer is a
	DirectByteBufferImpl object.
	(_Jv_JNI_GetDirectBufferCapacity): Likewise.
	* testsuite/libjava.jni/directbuffer.c,
	testsuite/libjava.jni/directbuffer.java,
	testsuite/libjava.jni/directbuffer.out,
	testsuite/libjava.jni/bytebuffer.c,
	testsuite/libjava.jni/bytebuffer.java,
	testsuite/libjava.jni/bytebuffer.out: New files.

From-SVN: r93046
2005-01-07 11:32:07 +00:00
Tom Tromey
367390404d * Merged gcj-abi-2-dev-branch to trunk.
(Actual changes too large to list in the commit message;
see ChangeLog.)

From-SVN: r91270
2004-11-25 03:47:08 +00:00
Michael Koch
7ef527365f 2004-11-24 Michael Koch <konqueror@gmx.de>
* java/nio/DirectByteBufferImpl.java
	(ReadWrite.ReadWrite): New constructor.
	(DirectByteBufferImpl): Likewise.
	* jni.cc (_Jv_JNI_NewDirectByteBuffer):
	Use DirectByteBufferImpl.ReadWrite.
	* Makefile.am:
	Generate java/nio/DirectByteBufferImpl$ReadWrite.h.
	* Makefile.in: Rgenerated.

From-SVN: r91150
2004-11-24 12:19:42 +00:00
Tom Tromey
cb0be2e79f jni.cc (_Jv_JNI_NewObjectArray): Fixed return type.
* jni.cc (_Jv_JNI_NewObjectArray): Fixed return type.
	* include/jni.h (struct JNINativeInterface) <NewObjectArray>: Now
	returns jobjectArray.
	(_Jv_JNIEnv::NewObjectArray): Likewise.

From-SVN: r90041
2004-11-03 22:53:20 +00:00
Ulrich Weigand
ed67425158 jni.cc (_Jv_JNIMethod::call): Use ffi_java_raw_call instead of ffi_raw_call if FFI_NATIVE_RAW_API is not defined.
* jni.cc (_Jv_JNIMethod::call): Use ffi_java_raw_call instead of
	ffi_raw_call if FFI_NATIVE_RAW_API is not defined.

From-SVN: r89051
2004-10-14 20:36:37 +00:00
Tom Tromey
252d78843b * jni.cc (_Jv_JNI_RegisterNatives): Formatting fixlets.
From-SVN: r88255
2004-09-28 21:55:26 +00:00
Per Bothner
b4d49f49bf javaprims.h (_Jv_Utf8Const): Change struct to a class, with private fields and access methods.
* gcj/javaprims.h (_Jv_Utf8Const): Change struct to a class,
	with private fields and access methods.
	(_Jv_NewStringUTF, _Jv_hashUtf8String): New function declarations.
	* gcj/cni.h (_Jv_NewStringUTF): Move to javaprims.h.
	* prims.cc (_Jv_Utf8COnst::init): New method implementation.
	( _Jv_makeUtf8Const): Rewrite using new constructors.
	(hashUtf8String): Rename to +_Jv_hashUtf8String and make non-static.
	* defineclass.cc: Use new _Utf8Const access/convenience methods.
	* jni.cc: Likewise.
	* resolve.cc: Likewise.
	* gcj/field.h: Likewise.
	* include/jvm.h: Likewise.
	* java/lang/Class.h: Likewise.
	* java/lang/natClass.cc: Likwise.
	* java/lang/natClassLoader.cc: Likewise
	* java/lang/reflect/natMethod.cc: Likewise
	* verify.cc: Likewise.
	(_Jv_BytecodeVerifier::make_utf8_const):  Optimize.
	(~_Jv_BytecodeVerifier):  Don't need second _Jv_Free call.

From-SVN: r85854
2004-08-11 23:53:42 -07:00
Tom Tromey
8e9031ec4d * jni.cc: Reindented.
From-SVN: r85491
2004-08-03 17:38:30 +00:00
Per Bothner
8319dc8709 jni.cc (_Jv_JNI_NewGlobalRef, [...]): Remove needless parenthesis...
* jni.cc (_Jv_JNI_NewGlobalRef, JNICALL _Jv_JNI_DeleteGlobalRef,
	etc etc):  Remove needless parenthesis, which causes __stdcall__
	attribute on MinGW to get ignored.

From-SVN: r83892
2004-06-29 21:52:11 -07:00
Mark Wielaard
d1ee83813d jni.cc (_Jv_JNI_GetAnyMethodID): Add name and signature to NoSuchMethodError.
* jni.cc (_Jv_JNI_GetAnyMethodID): Add name and signature to
       NoSuchMethodError.

From-SVN: r82972
2004-06-11 10:42:59 +00:00
Bryce McKinlay
f531010820 class.c (make_class_data): Add new field aux_info.
2004-04-19  Bryce McKinlay  <mckinlay@redhat.com>

	* class.c (make_class_data): Add new field aux_info.
	* decl.c (java_init_decl_processing): Push type and decl for
	`aux_info'.

2004-04-19  Bryce McKinlay  <mckinlay@redhat.com>

	* gcj/cni.h (JvAllocObject): Remove these obsolete,
	undocumented CNI calls.
	* include/java-interp.h (_Jv_InterpClass): No longer
	extends java.lang.Class.
	* java/lang/Class.h (Class): Add new field `aux_info'.
	* boehm.cc (_Jv_MarkObj): Update java.lang.Class marking.
	* defineclass.cc: Remove Class<->_Jv_InterpClass casts.
	Use Class->aux_info instead.
	* jni.cc (_Jv_JNI_AllocObject): Use _Jv_AllocObject.
	* resolve.cc: Remove Class<->_Jv_InterpClass casts.
	Use Class->aux_info instead.
	* java/io/natObjectInputStream.cc (allocateObject): Use
	_Jv_AllocObject.
	* java/lang/natClass.cc (newInstance): Likewise.
	* java/lang/natClassLoader.cc (_Jv_NewClass): Likewise.
	* java/lang/natObject.cc (clone): Likewise.
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise.
	* java/lang/natVMClassLoader.cc (defineClass): Don't use
	JvAllocObject. Allocate klass->aux_info here for interpreted
	class.

From-SVN: r80875
2004-04-20 02:38:46 +01:00
Michael Koch
3953c05789 jvm.h (MAYBE_UNUSED): New macro tp mark probably unused arguments.
2004-02-01  Michael Koch  <konqueror@gmx.de>

	* include/jvm.h (MAYBE_UNUSED): New macro tp mark probably unused
	arguments.
	* jni.cc (_Jv_LookupJNIMethod): Mark 'args_size' unused.
	* verify.cc (debug_print): Mark 'fmt' unused.

From-SVN: r77079
2004-02-01 20:05:03 +00:00
Tom Tromey
6c363de7ea jni.cc (_Jv_JNI_GetStringUTFChars): Fail gracefully if string is null.
* jni.cc (_Jv_JNI_GetStringUTFChars): Fail gracefully if string
	is null.

From-SVN: r73707
2003-11-18 17:56:33 +00:00
Tom Tromey
b86ca9a2dc jni.cc (_Jv_JNI_GetStringUTFChars): Pass length of string to JvGetStringUTFRegion.
* jni.cc (_Jv_JNI_GetStringUTFChars): Pass length of string to
	JvGetStringUTFRegion.
	* java/lang/natPosixProcess.cc (new_string): Pass length of string
	to JvGetStringUTFRegion.
	* java/lang/natDouble.cc (parseDouble): Pass length of string to
	JvGetStringUTFRegion.
	* java/lang/natWin32Process.cc (startProcess): Pass length of
	string to JvGetStringUTFRegion.
	* java/lang/natClass.cc (forName): Pass length of string to
	JvGetStringUTFRegion.
	* gnu/gcj/runtime/natNameFinder.cc (getExternalLabel): Pass length
	of string to JvGetStringUTFRegion.
	* gnu/gcj/convert/natIconv.cc (init): Pass length of string to
	JvGetStringUTFRegion.
	* gnu/awt/gtk/natGtkLabelPeer.cc (setText): Pass length of string
	to JvGetStringUTFRegion.
	* gnu/awt/gtk/natGtkButtonPeer.cc (setLabel): Pass length of
	string to JvGetStringUTFRegion.

From-SVN: r73571
2003-11-14 01:48:30 +00:00
Danny Smith
2fe6fc5268 jni.cc (JNI_CreateJavaVM): Remove JNIEXPORT.
* jni.cc (JNI_CreateJavaVM): Remove JNIEXPORT.
	(JNI_GetCreatedJavaVMs): Likewise.
	(JNI_GetDefaultJavaVMInitArgs): Likewise.
	* include/jni.h (JNIIMPEXP): Remove definition
	and replace with...
	(__GCJ_JNIIMPEXP__): New macro, applicable only to libgcj
	symbols,
	(__GCJ_DLL__): New macro, controlling __GCJ_JNIIMPEXP__.

From-SVN: r73484
2003-11-12 05:56:44 +00:00
Bryce McKinlay
b9b5672b49 Constructor.java (toString): Avoid extra whitespace on constructor with no modifiers.
2003-10-26  Bryce McKinlay  <bryce@mckinlay.net.nz>

	* java/lang/reflect/Constructor.java (toString): Avoid extra
	whitespace on constructor with no modifiers.
	* java/lang/reflect/natConstructor.java (newInstance): Look up
	caller and perform accessibility check only if constructor is
	non-public and accessible flag is not set.

2003-10-26  Bryce McKinlay  <bryce@mckinlay.net.nz>

	* jni.cc (_Jv_JNI_CallAnyMethodV, _Jv_JNI_CallAnyMethodA,
	_Jv_JNI_CallAnyVoidMethodV, _Jv_JNI_CallAnyVoidMethodA): Don't
	use _Jv_LookupDeclaredMethod(). Call _Jv_CallAnyMethodA with
	is_virtual_call argument.
	* include/jvm.h (_Jv_isVirtualMethod): Moved and renamed from
	natClass.cc.
	* java/lang/natClass.cc (_Jv_LayoutVTableMethods): Use
	_Jv_isVirtualMethod.
	* java/lang/reflect/natMethod.cc (invoke): Don't use
	_Jv_LookupDeclaredMethod.
	(_Jv_CallAnyMethodA): New is_virtual_call argument. If specified,
	look up method in target object's vtable.

From-SVN: r72942
2003-10-26 02:25:42 +00:00
Michael Koch
b5bb72ec41 jni.cc (_Jv_LookupJNIMethod): Remove workaround that should hide a compiler warning but produces a different...
2003-09-22  Michael Koch  <konqueror@gmx.de>

	* jni.cc (_Jv_LookupJNIMethod): Remove workaround that should hide a
	compiler warning but produces a different one now.

From-SVN: r71650
2003-09-22 08:05:51 +00:00
Graydon Hoare
4d6a988ac5 jni.cc: Replace "cheating" pointer-casting code with extract_from_jvalue<> template.
2003-08-20  Graydon Hoare  <graydon@redhat.com>

	* jni.cc: Replace "cheating" pointer-casting code with
	extract_from_jvalue<> template.

From-SVN: r70613
2003-08-20 19:37:21 +00:00
Tom Tromey
0da021f5cc re PR libgcj/11951 (natMethod.cc (_Jv_CallAnyMethodA) should clear ffi_result before ffi_call)
PR libgcj/11951:
	* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Returns
	void.  Throw VirtualMachineError if ffi fails.  Initialize return
	value.  Added is_jni_call argument; only wrap exception if not a
	JNI call.  Use descriptive message if operation not supported.
	(_Jv_GetTypesFromSignature): Use declaring class' loader to find
	array class.
	* include/jvm.h (_Jv_CallAnyMethodA): Updated declaration.
	* jni.cc (_Jv_JNI_CallAnyMethodV): Updated for new form of
	_Jv_CallAnyMethodA.
	(_Jv_JNI_CallAnyMethodA): Likewise.
	(_Jv_JNI_CallAnyVoidMethodV): Likewise.
	(_Jv_JNI_CallAnyVoidMethodA): Likewise.

From-SVN: r70544
2003-08-18 14:36:07 +00:00
Tom Tromey
ffd94572f4 Runtime.java: Comment fix.
* java/lang/Runtime.java: Comment fix.
	* java/lang/ClassLoader.java (isAncestorOf): New method.
	(getParent): Uncommented security check.  Use isAncestorOf.
	* include/jvm.h (_Jv_CheckAccess): Declare.
	* java/lang/reflect/natConstructor.cc (newInstance): Perform
	access check.
	Include IllegalAccessException.h, ArrayIndexOutOfBoundsException.h.
	* java/lang/reflect/natArray.cc (newInstance): Pass caller's
	class loader to _Jv_GetArrayClass.
	Include ArrayIndexOutOfBoundsException.h.
	* java/lang/reflect/Field.java: Update comment to reflect status.
	(equals): Fixed indentation.
	* java/lang/Class.h (Class): Declare memberAccessCheck, not
	checkMemberAccess.  Make _Jv_CheckAccess a friend.
	* java/lang/Class.java (memberAccessCheck): New method from
	Classpath.
	(checkMemberAccess): Removed.
	(getDeclaredMethod): Use memberAccessCheck.
	(getField): Likewise.
	(getMethod): Likewise.
	* resolve.cc (_Jv_ResolvePoolEntry): Use _Jv_CheckAccess.
	(_Jv_SearchMethodInClass): Likewise.
	* prims.cc (_Jv_CheckAccess): New function.
	* jni.cc (_Jv_JNI_FindClass): Use getClassLoaderInternal.
	(_Jv_JNI_GetAnyFieldID): Likewise.
	* java/lang/natClass.cc (forName): Use getClassLoaderInternal.
	(getClassLoader): Added security check.
	(getConstructor): Call memberAccessCheck.
	(getDeclaredClasses): Likewise.
	(getDeclaredField): Likewise.
	(getDeclaredFields): Likewise.
	(_getConstructors): Likewise.
	(getDeclaredConstructor): Likewise.
	(getDeclaredMethods): Likewise.
	(getFields): Likewise.
	(getMethods): Likewise.
	(newInstance): Likewise.
	(_Jv_MakeVTable): Put method name in exception.
	* java/lang/reflect/natMethod.cc (getType): Use
	getClassLoaderInternal.
	(_Jv_GetTypesFromSignature): Likewise.
	(invoke): Perform access check.
	(_Jv_CallAnyMethodA): Removed old FIXME comments.
	Include ArrayIndexOutOfBoundsException.h.
	* java/lang/reflect/natField.cc (getType): Use
	getClassLoaderInternal.
	(_Jv_CheckFieldAccessibility): Removed.
	(getAddr): Use _Jv_CheckAccess; find caller.
	Include ArrayIndexOutOfBoundsException.h.

From-SVN: r69621
2003-07-21 01:54:06 +00:00
Michael Koch
6f3aed57fb 2003-06-17 Michael Koch <konqueror@gmx.de>
* java/nio/DirectByteBufferImpl.java
	(address): Made package private.
	(DirectByteBufferImpl): New constructor.
	* java/nio/natDirectByteBufferImpl.cc
	(allocateImpl): Moved to java.nio namespace, implemented.
	(freeImpl): Likewise.
	(getImpl): Likewise.
	(putImpl): Likewise.
	* jni.cc
	(_Jv_JNI_NewDirectByteBuffer): Implemented.
	(_Jv_JNI_GetDirectBufferAddress): Implemented.
	(_Jv_JNI_GetDirectBufferCapacity): Implemented.

From-SVN: r68105
2003-06-17 19:09:56 +00:00
Andrew Haley
e976ed37ef jni.cc (_Jv_JNI_check_types): New.
2003-06-11  Andrew Haley  <aph@redhat.com>

        * jni.cc (_Jv_JNI_check_types): New.
        (_Jv_JNI_SetPrimgitiveArrayRegion): Check array type.
        (_Jv_JNI_GetPrimitiveArrayRegion): Ditto.
        (_Jv_JNI_GetPrimitiveArrayElements): Ditto.
        (_Jv_JNI_ReleasePrimitiveArrayElements): Ditto.

        * java/lang/natVMSecurityManager.cc (getClassContext): Fix
        infinite loop.

From-SVN: r67835
2003-06-12 15:39:17 +00:00
Ranjit Mathew
c79d770273 jni.cc (_Jv_LookupJNIMethod): Modify to accept the size of the arguments for a JNI function.
2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>

	* jni.cc (_Jv_LookupJNIMethod): Modify to accept the
	size of the arguments for a JNI function. For Win32,
	modify to search for all forms of possible exported
	names of an stdcall JNI function.
	(_Jv_JNIMethod::call): Modify to calculate the size
	of the arguments passed to a JNI function and pass
	it to _Jv_LookupJNIMethod.

From-SVN: r62796
2003-02-12 23:40:31 +00:00
Tom Tromey
9bc825c4ba jni.cc (_Jv_JNI_NewObjectArray): Check that initializer can be cast to element type.
* jni.cc (_Jv_JNI_NewObjectArray): Check that initializer can be
	cast to element type.
	(_Jv_JNI_SetObjectArrayElement): Check array bounds.
	(_Jv_JNI_GetObjectArrayElement): Likewise.

From-SVN: r62210
2003-01-31 22:50:48 +00:00