Commit Graph

649 Commits

Author SHA1 Message Date
Kelley Cook
917b04f492 Update FSF address
From-SVN: r101453
2005-06-30 03:22:09 +00:00
Tom Tromey
3af9ac15a9 re PR libgcj/22211 ([4.0 only] Thread.interrupt sometimes causes abort if thread is already dead)
PR libgcj/22211:
	* testsuite/libjava.lang/pr22211.java: New file.
	* java/lang/natThread.cc (finish_): Synchronize when updating
	alive_flag.
	(_Jv_AttachCurrentThread): Likewise.
	(interrupt): Only call _Jv_ThreadInterrupt if thread is alive.
	* java/lang/Thread.java (isAlive): Now synchronized.

From-SVN: r101430
2005-06-29 17:36:16 +00:00
Tom Tromey
42c5169549 natClassLoader.cc (_Jv_UnregisterClass): Handle case where class' name is NULL.
* java/lang/natClassLoader.cc (_Jv_UnregisterClass): Handle case
	where class' name is NULL.
	(_Jv_FindClass): Don't wait for class state.
	* java/lang/natVMClassLoader.cc (defineClass): Only unregister if
	name found.
	* include/java-interp.h (_Jv_DefineClass): Updated.
	* defineclass.cc (_Jv_DefineClass): Added 'name_result' argument.
	(struct _Jv_ClassReader): Likewise.
	(found_name): New field.
	(handleClassBegin): Set *found_name.
	(_Jv_VerifyMethodSignature): Handle case where ptr==NULL.
	(handleClassBegin): Throw error if super class not set.
	(read_methods): Correctly call check_tag and prepare_pool_entry.

From-SVN: r101301
2005-06-24 22:48:33 +00:00
Tom Tromey
7666af8941 Class.java (getClasses): New method.
* java/lang/Class.java (getClasses): New method.
	(internalGetClasses): Likewise.
	(getClassLoader): Updated documentation.
	(getDeclaredClasses): New overload; old overload no longer
	native.
	(_getConstructors): Removed.
	(resourcePath): Updated.
	* java/lang/natClass.cc (getClasses): Removed.
	* java/lang/Class.h (getDeclaredClasses, getDeclaredConstructors):
	Updated.
	(_getConstructors): Removed.

From-SVN: r100948
2005-06-14 18:51:54 +00:00
Tom Tromey
68d8b93454 re PR libgcj/21753 (String.substring sharing heuristic should be improved)
PR libgcj/21753:
	* java/lang/natString.cc (substring): Changed sharing heuristic.

From-SVN: r100454
2005-06-01 15:52:45 +00:00
Tom Tromey
93f8e21b71 re PR libgcj/21703 (hang when rapidly calling String.intern())
PR libgcj/21703:
	* java/lang/ref/natReference.cc (find_slot): Handle case where
	table has no NULL entries.
	* java/lang/natString.cc (_Jv_StringFindSlot): Handle case where
	table has no NULL entries.

From-SVN: r100153
2005-05-25 15:23:56 +00:00
Andreas Jaeger
313344b4de mprec.c (mult, [...]): Add parenthesis to avoid warnings.
* java/lang/mprec.c (mult, lshift, b2d, d2b): Add parenthesis to
	avoid warnings.

From-SVN: r100057
2005-05-22 08:55:21 +02:00
Bryce McKinlay
146e2904bc natClassLoader.cc (_Jv_NewClass): Use _Jv_RegisterInitiatingLoader to register array classes, not _Jv_RegisterClass.
* java/lang/natClassLoader.cc (_Jv_NewClass): Use
	_Jv_RegisterInitiatingLoader to register array classes, not
	_Jv_RegisterClass.
	(_Jv_RegisterInitiatingLoader): Give up if called very early during
	bootstrapping. Add a FIXME to handle this case better.

From-SVN: r99993
2005-05-19 23:24:26 +01:00
Tom Tromey
3b523c85c1 * java/lang/String.java (startsWith): Fixed javadoc.
From-SVN: r99746
2005-05-15 21:09:45 +00:00
Bryce McKinlay
c8c03f8479 re PR libgcj/21557 (Hash synchronization: Thread.interrupt() can make _Jv_MonitorEnter hang)
2005-05-13  Bryce McKinlay  <mckinlay@redhat.com>

	PR libgcj/21557
	* java/lang/natObject.cc (_Jv_MonitorEnter): Save and clear thread
	interrupt status flag if _Jv_CondWait is interrupted.

From-SVN: r99687
2005-05-14 01:42:46 +01:00
Tom Tromey
cca1655eab gcj.texi (Code Generation): Document -fbootstrap-classes.
gcc/java:
	* gcj.texi (Code Generation): Document -fbootstrap-classes.
	* decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro.
	(parse_version): Use it.
	* lang.opt (-fbootstrap-classes): New option.
libjava:
	* external/w3c_dom/Makefile.in: Rebuilt.
	* external/w3c_dom/Makefile.am (libw3c_gcj_la_GCJFLAGS): Added
	-fbootstrap-classes.
	* external/sax/Makefile.in: Rebuilt.
	* external/sax/Makefile.am (libsax_gcj_la_GCJFLAGS): Added
	-fbootstrap-classes.
	* java/lang/Class.h (_Jv_CopyClassesToSystemLoader): Declare as
	friend.
	* java/lang/natVMClassLoader.cc (getSystemClassLoaderInternal):
	Call _Jv_CopyClassesToSystemLoader.
	* java/lang/natClassLoader.cc (system_class_list): New global.
	(_Jv_RegisterClassHookDefault): Handle bootstrap and system
	classes differently.
	(_Jv_CopyClassesToSystemLoader): New function.
	(SYSTEM_LOADER_INITIALIZED): New define.
	* include/jvm.h (GCJ_BOOTSTRAP_LOADER_ADDITION): New define.
	(_Jv_CheckABIVersion): Use it.
	(_Jv_ClassForBootstrapLoader): New function.
	* Makefile.in: Rebuilt.
	* Makefile.am (AM_GCJFLAGS): Added -fbootstrap-classes.

From-SVN: r99604
2005-05-12 01:27:15 +00:00
Tom Tromey
0cb757cc06 javaprims.h: Updated.
* gcj/javaprims.h: Updated.
	* java/lang/String.java (String(StringBuilder)): New constructor.
	* java/lang/natStringBuilder.cc: New file.
	* java/lang/StringBuilder.java: New file.
	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added StringBuilder.java.
	(nat_source_files): Added natStringBuilder.cc.

From-SVN: r99535
2005-05-10 18:28:31 +00:00
Tom Tromey
21fae9376c VMSecurityManager.java (currentClassLoader): Use 'systemClasssLoader' directly.
* java/lang/VMSecurityManager.java (currentClassLoader): Use
	'systemClasssLoader' directly.

From-SVN: r99185
2005-05-03 22:15:01 +00:00
Tom Tromey
9d4440a547 VMSecurityManager.java (currentClassLoader): Don't call VMClassLoader.getSystemClassLoader.
* java/lang/VMSecurityManager.java (currentClassLoader): Don't
	call VMClassLoader.getSystemClassLoader.

From-SVN: r99177
2005-05-03 19:33:13 +00:00
Andrew Haley
cfbb263896 Class.h (_Jv_ResolvePoolEntry): Declare as friend.
2005-04-29  Andrew Haley  <aph@redhat.com>

	* java/lang/Class.h (_Jv_ResolvePoolEntry): Declare as friend.

From-SVN: r99016
2005-04-29 20:02:47 +00:00
Michael Koch
57fc483297 2005-04-26 Michael Koch <konqueror@gmx.de>
* java/lang/System.java
	(setSecurityManager): Fixed comment.
	(getSecurityManager): Removed obsolete comment.

From-SVN: r98763
2005-04-26 05:09:35 +00:00
Michael Koch
4b30c6bda0 Runtime.java, [...]: Replaced java.lang.Runtime.securityManager by java.lang.SecurityManager.current...
2005-04-25  Michael Koch  <konqueror@gmx.de>

	* java/lang/Runtime.java,
	java/lang/SecurityManager.java,
	java/lang/System.java,
	java/lang/ThreadGroup.java:
	Replaced java.lang.Runtime.securityManager by
	java.lang.SecurityManager.current (as used in GNU classpath).

From-SVN: r98738
2005-04-25 20:35:17 +00:00
Michael Koch
ee141b8822 [multiple changes]
2005-04-25  Archie Cobbs  <archie@dellroad.org>

	* java/lang/Throwable.java: simplify initializing cause in constructor

2005-04-25  Michael Koch  <konqueror@gmx.de>

	* gnu/classpath/SystemProperties.java: New file.
	* gnu/classpath/natSystemProperties.cc: New file.
	* java/lang/Runtime.java
	(defaultProperties): Removed.
	(static): Likewise.
	(): Made thrown exceptions more verbose.
	(insertSystemProperties): Removed.
	* java/lang/System.java
	(static): Likewise.
	(properties): Likewise.
	(setSecurityManager): Reordered modifiers.
	(getenv): Improved javadoc.
	(): Likewise.
	(isWordsBigEndian): Removed.
	* java/lang/natRuntime.cc
	(_Jv_SetDLLSearchPath): Likewise.
	(file_encoding): Likewise.
	(default_file_encoding): Likewise.
	(getpwuid_adaptor): Likewise.
	(insertSystemProperties): Likewise.
	* java/lang/natSystem.cc
	(isWordsBigEndian): Likewise.
	* Makefile.am
	(ordinary_java_source_files):
	Added gnu/classpath/SystemProperties.java.
	(nat_source_files): Added gnu/classpath/natSystemProperties.cc.
	* Makefile.in: Regenerated.

From-SVN: r98734
2005-04-25 19:48:35 +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
36a0d3d264 * java/lang/natClass.cc (initializeClass): Link class.
From-SVN: r98540
2005-04-22 02:33:31 +00:00
Tom Tromey
8fd5bcbe95 AssertionError.java: Typo fix.
2005-04-21  Tom Tromey  <tromey@redhat.com>

	* java/lang/AssertionError.java: Typo fix.

From-SVN: r98523
2005-04-21 20:41:32 +00:00
Tom Tromey
aa3241f328 VMClassLoader.java (transformException): Removed.
* java/lang/VMClassLoader.java (transformException): Removed.
	(resolveClass): No longer native.  Now does nothing.
	* java/lang/natVMClassLoader.cc (resolveClass): Removed.

From-SVN: r98516
2005-04-21 17:20:36 +00:00
Mark Wielaard
8a5691f87d natRuntime.cc (insertSystemProperties): Set java.class.path to CLASSPATH only when not empty.
* java/lang/natRuntime.cc (insertSystemProperties): Set
       java.class.path to CLASSPATH only when not empty. Fall back to
       default path "." when java.class.path is empty.

From-SVN: r98394
2005-04-19 09:29:16 +00:00
Tom Tromey
8fe0225bf8 natVMClassLoader.cc (loadClass): Call resolveClass, not _Jv_InitClass.
* java/lang/natVMClassLoader.cc (loadClass): Call resolveClass,
	not _Jv_InitClass.

From-SVN: r98388
2005-04-19 06:36:10 +00:00
Mark Wielaard
f5e002ce85 natRuntime.cc (insertSystemProperties): Set java.class.path to CLASSPATH if not already set.
* java/lang/natRuntime.cc (insertSystemProperties): Set
       java.class.path to CLASSPATH if not already set.

From-SVN: r98099
2005-04-13 16:46:47 +00:00
Andrew Haley
58bf803e6c bytearray.java: New file.
2005-04-06  Andrew Haley  <aph@redhat.com>

	* testsuite/libjava.lang/bytearray.java: New file.
	* testsuite/libjava.lang/bytearray.out: New file.
	* java/lang/ClassLoader.java (loadClassFromSig): Declare
	(loadClass): Use it.
	* java/lang/natClassLoader.cc (loadClassFromSig): New method.

From-SVN: r97756
2005-04-06 22:30:01 +00:00
Thomas Fitzsimmons
c33b7bf04a re PR libgcj/20750 (libgcj needs a --with-java-home configure option)
2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* doc/install.texi (Configuration): Document --with-java-home.

2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR libgcj/20750
	* Makefile.am (AM_CXXFLAGS): Define JAVA_HOME.
	* Makefile.in: Regenerate.
	* configure.ac: Add --with-java-home option.
	* configure: Regenerate.
	* external/Makefile.in: Regenerate.
	* external/sax/Makefile.in: Regenerate.
	* external/w3c_dom/Makefile.in: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.
	* java/lang/natRuntime.cc (insertSystemProperties): Set java.home
	to JAVA_HOME macro.

From-SVN: r97671
2005-04-05 23:46:09 +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
Tom Tromey
6a5d24d70d ClassLoader.java (loadClass): Resolve class even if it was already found.
* java/lang/ClassLoader.java (loadClass): Resolve class even if
	it was already found.

From-SVN: r97565
2005-04-04 18:40:24 +00:00
Thomas Fitzsimmons
b6121641fc re PR libgcj/20090 (gij should be implemented in Java)
2005-04-01  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gcj.texi (Invoking gij): Add descriptions of new -X options.
	Mention recognized-and-ignored compatibility options.
	(Memory allocation): Add descriptions of JvMalloc, JvRealloc and
	JvFree.
	(About CNI): Add Memory allocation section.

2005-04-01  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR libgcj/20090, PR libgcj/20526
	* gij.cc (nonstandard_opts_help): New function.
	(add_option): New function.
	(main): Support java options.  Set java.class.path.  Don't set
	_Jv_Jar_Class_Path.
	* prims.cc (parse_x_arg): New function.
	(parse_init_args): Call parse_x_arg for -X and _ options, when
	ignoreUnrecognized is true.
	(new _Jv_RunMain): New vm_args variant.
	(old _Jv_RunMain): Call new vm_args _Jv_RunMain.
	(_Jv_Jar_Class_Path): Remove variable.
	* include/java-props.h: Likewise.
	* include/cni.h (JvRealloc): New function.
	* include/jvm.h (_Jv_RunMain): Declare vm_args variant.
	* java/lang/natRuntime.cc (insertSystemProperties): Remove
	_Jv_Jar_Class_Path logic.  Use JV_VERSION and JV_API_VERSION
	macros.
	* configure.ac (JV_VERSION): Define.
	(JV_API_VERSION): Likewise.
	* configure: Regenerate.
	* include/config.h.in: Regenerate.

From-SVN: r97429
2005-04-02 02:26:51 +00:00
Mark Anderson
9545f3a933 natDouble.cc (parseDouble): Handle NaN, Infinity and -Infinity as parameters.
2005-04-01 Mark Anderson <mark@panonet.net>

	* java/lang/natDouble.cc (parseDouble): Handle NaN, Infinity and
	-Infinity as parameters.

From-SVN: r97424
2005-04-02 01:18:45 +00:00
Tom Tromey
ef87438639 natVMClassLoader.cc (getSystemClassLoaderInternal): Updated for name change.
* java/lang/natVMClassLoader.cc (getSystemClassLoaderInternal):
	Updated for name change.
	(nativeFindClass): New method.
	(loadClass): Use nativeFindClass.
	* java/lang/natClassLoader.cc (_Jv_FindClass): Use single-argument
	form of loadClass.
	* java/lang/VMClassLoader.java (tried_libraries, lib_control,
	LIB_FULL, LIB_CACHE, LIB_NEVER): New fields from old
	VMClassLoader.
	(initialize): New method.
	(nativeFindClass): Declare.
	* gnu/gcj/runtime/natVMClassLoader.cc: Removed.
	* gnu/gcj/runtime/VMClassLoader.java: Removed.
	* gnu/gcj/runtime/ExtensionClassLoader.java: Renamed from
	VMClassLoader.java.
	(definePackageForNative): Removed.
	(tried_libraries, LIB_CACHE, LIB_FULL, LIB_NEVER, lib_control):
	Moved to VMClassLoader.java.
	* prims.cc (_Jv_CreateJavaVM): Updated for renaming.
	* Makefile.am (gnu/gcj/runtime/ExtensionClassLoader.h): Renamed.
	(ordinary_java_source_files): Added ExtensionClassLoader.java,
	removed VMClassLoader.java.
	(nat_source_files): Removed natVMClassLoader.cc.

From-SVN: r97414
2005-04-01 19:19:13 +00:00
Tom Tromey
dc0a6205e6 natRuntime.cc (insertSystemProperties): Set gnu.gcj.runtime.endorsed.dirs.
libjava:
	* java/lang/natRuntime.cc (insertSystemProperties): Set
	gnu.gcj.runtime.endorsed.dirs.
	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Added
	HelperClassLoader.java.
	(AM_CXXFLAGS): Define GCJ_ENDORSED_DIRS.
	* gnu/gcj/runtime/VMClassLoader.java (VMClassLoader): Extends
	HelperClassLoader.
	(init): Use addDirectoriesFromProperty.
	* gnu/gcj/runtime/BootClassLoader.java (BootClassLoader): Extends
	HelperClassLoader.  Use addDirectoriesFromProperty.  Handle
	gnu.gcj.runtime.endorsed.dirs.
	* gnu/gcj/runtime/HelperClassLoader.java: New file.
gcc/java:
	* gcj.texi (libgcj Runtime Properties): Document
	gnu.gcj.runtime.endorsed.dirs.

From-SVN: r97207
2005-03-29 21:47:03 +00:00
Tom Tromey
aa893047e8 Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
	* Makefile.am (AM_CXXFLAGS): Define TOOLEXECLIBDIR.
	(libgcj0_convenience_la_SOURCES): Don't include
	gnu_xml_source_files.
	(libgcj0_convenience_la_LIBADD): New variable.
	(libgcj_la_LIBADD): Don't include sax or w3c_dom.
	(all_java_source_files): javax_imageio_source_files,
	javax_xml_source_files, and gnu_java_beans_source_files.
	($(gnu_xml_source_files:.java=.lo)): Removed target.
	(gnu-xml.lo): New target.
	(javax-imageio.lo): Likewise.
	(javax-xml.lo): Likewise.
	(gnu-java-beans.lo): Likewise.
	(gnu_java_beans_source_files): New variable.
	(javax_imageio_source_files): Likewise.
	(javax_xml_source_files): Likewise.
	(javax_source_files): Moved files to other variable.
	(awt_java_source_files): Likewise.
	(ordinary_java_source_files): Added BootClassLoader.java.
	* java/lang/natVMClassLoader.cc (defineClass): Use boot loader,
	not system class loader.
	(initBootLoader): New method.
	(loadClass): Search bootLoader.
	* java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader): Use
	boot loader, not system class loader.
	(_Jv_UnregisterInitiatingLoader): Likewise.
	(_Jv_FindClass): Likewise.  Ensure entries in
	bootstrap_class_list are unique.
	* java/lang/natClass.cc (getClassLoader): Don't special case
	system class loader.
	* java/lang/VMClassLoader.java (bootLoader): New field.
	(getResource): Use bootLoader.
	(getResources): Likewise.
	(initBootLoader): Declare.
	* gnu/gcj/runtime/BootClassLoader.java: New file.
	* external/sax/org/xml/sax/helpers/NamespaceSupport.java
	(EMPTY_ENUMERATION): Now package-private.
	* external/w3c_com/Makefile.in: Rebuilt.
	* external/w3c_com/Makefile.am (MULTIBUILDTOP): New variable.
	(w3c.jar): New target.
	(classes.stamp): Updated.
	(toolexeclib_LTLIBRARIES): Renamed from noinst_LTLIBRARIES.
	Changed name of library.
	(libw3c_gcj_la_SOURCES): New variable.
	(libw3c_gcj_la_GCJFLAGS): Likewise.
	(source_files): Renamed from lib3c_convenience_la_SOURCES.
	* external/sax/Makefile.in: Rebuilt.
	* external/sax/Makefile.am (MULTIBUILDTOP): New variable.
	(sax.jar): New target.
	(classes.stamp): Updated.
	(toolexeclib_LTLIBRARIES): Renamed from noinst_LTLIBRARIES.
	Changed name of library.
	(libsax_gcj_la_SOURCES): New variable.
	(libsax_gcj_la_GCJFLAGS): Likewise.
	(source_files): Renamed from libsax_convenience_la_SOURCES.
	* stacktrace.cc (non_system_trace_fn): Don't look at system class
	loader.
	* prims.cc (_Jv_CreateJavaVM): Initialize the bootstrap class
	loader.
	(_Jv_RunMain): Handle case where 'runtime' is NULL at exit.

From-SVN: r96960
2005-03-24 00:04:22 +00:00
Mike Stump
4148df124f posix.h: .dylib is used on all Apple MACH platforms.
* include/posix.h: .dylib is used on all Apple MACH platforms.
        * java/lang/ieeefp.h: ppc64 is also __IEEE_BIG_ENDIAN.

From-SVN: r96889
2005-03-22 20:10:16 +00:00
Tom Tromey
1ccc1c82d8 VMCompiler.java (static block): Also catch BufferUnderflowException.
* java/lang/VMCompiler.java (static block): Also catch
	BufferUnderflowException.

From-SVN: r96832
2005-03-21 20:59:18 +00:00
Andrew Haley
e5a8980bb9 natVMSecurityManager.cc (getClassContext): Add new arg: klass.
2005-03-17  Andrew Haley  <aph@redhat.com>

	* java/lang/natVMSecurityManager.cc (getClassContext): Add new
	arg: klass.
	Pass klass to _Jv_StackTrace::GetClassContext().
	* java/lang/ClassLoader.java (getParent): Pass class to
	VMSecurityManager.getClassContext()
	(getSystemClassLoader): Likewise.
	* java/lang/Package.java (getPackage): Likewise.
	(getPackages): Likewise.
	* java/lang/SecurityManager.java (getClassContext): Likewise.
	(currentClassLoader): Likewise.
	* java/lang/VMSecurityManager.java: (getClassContext): Likewise.
	(currentClassLoader) Add new arg: caller.
	Pass caller to VMSecurityManager.getClassContext.

	* stacktrace.cc (GetClassContext): Correct calculation of
	jframe_count.

	* boehm.cc (_Jv_MarkObj): (_Jv_MarkObj): Mark
	im->source_file_name.

From-SVN: r96803
2005-03-21 14:50:14 +00:00
Tom Tromey
f37a936b56 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
2005-03-17 00:18:50 +00:00
Andreas Tobler
455d8f0605 stacktrace.cc (_Jv_StackTrace::UnwindTraceFn): Protect interpreter-specific code with #ifdef INTERPRETER.
2005-03-15  Andreas Tobler  <a.tobler@schweiz.ch>

        * stacktrace.cc (_Jv_StackTrace::UnwindTraceFn): Protect
        interpreter-specific code with #ifdef INTERPRETER.
        (_Jv_StackTrace::getLineNumberForFrame): Likewise.
        (_Jv_StackTrace::FillInFrameInfo): Likewise.
        (_Jv_StackTrace::non_system_trace_fn): Likewise.
        * include/java-stack.h (struct _Jv_InterpFrameInfo): Protect  with
        #ifdef INTERPRETER. Also protect declarations that use it.
        * java/lang/Class.h: Move _Jv_StackTrace friend declaration  outside
        #ifdef INTERPRETER block.

From-SVN: r96571
2005-03-16 18:18:59 +00:00
Tom Tromey
558b8548b4 Main.java (main): Handle '-p'.
libjava:
	* gnu/gcj/tools/gcj_dbtool/Main.java (main): Handle '-p'.
	(usage): Document '-p'.
	* Makefile.in: Rebuilt.
	* Makefile.am (dbexecdir): New variable.
	(db_name): Likewise.
	(dbexec_DATA): Likewise.
	($(db_name)): New target.
	(AM_CXXFLAGS): Define LIBGCJ_DEFAULT_DATABASE.
	* java/lang/natRuntime.cc (insertSystemProperties): Set default
	system database.
gcc/java:
	* gcj.texi (Invoking gcj-dbtool): Document 'gcj-dbtool -p'.
	(libgcj Runtime Properties): Document the default .db.

From-SVN: r96303
2005-03-11 17:35:37 +00:00
Bryce McKinlay
c0cbd60130 exception.cc: Remove stray MethodRef.h include.
2005-03-10  Bryce McKinlay  <mckinlay@redhat.com>

        * exception.cc: Remove stray MethodRef.h include.
        * java/lang/natClass.cc: Likewise.
        * gnu/gcj/runtime/MethodRef.java: Removed.
        * gnu/gcj/runtime/StackTrace.java, gnu/gcj/runtime/natNameFinder.cc,
        gnu/gcj/runtime/natStackTrace.cc: Really removed.
        * java/lang/natRuntime.cc (_load): Remove unsed variable.
        * Makefile.am (ordinary_java_source_files): Remove MethodRef.java.
        * Makefile.in: Rebuilt.

From-SVN: r96288
2005-03-11 04:30:20 +00:00
Bryce McKinlay
18744d9b72 New Stack Trace infrastructure.
2005-03-10  Bryce McKinlay  <mckinlay@redhat.com>

	New Stack Trace infrastructure.
	* Makefile.am (libgcj0_convenience_la_SOURCES): Add stacktrace.cc.
	(gnu/gcj/runtime/StackTrace.lo): Removed.
	(ordinary_java_source_files): Remove obsolete files.
	(nat_source_files): Remove obsolete files. Add natVMThrowable.cc.
	* configure.host (fallback_backtrace_h): Set backtrace header
	for mingw and cygwin targets.
	* configure.ac: Make symlink for fallback backtrace headers.
	* Makefile.in, configure: Rebuilt.
	* defineclass.cc (_Jv_ClassReader::read_one_code_attribute):
	Read 'LineNumberTable' attribute.
	(_Jv_ClassReader::read_one_class_attribute): Read 'SourceFile'
	attribute.
	(_Jv_ClassReader::handleCodeAttribute): Initialize method line
	table fields.
	* exception.cc: Remove unused include.
	* interpret.cc (DIRECT_THREADED, insn_slot): Moved to java-interp.h.
	(SAVE_PC): New macro. Save current PC in the interpreter frame.
	(NULLCHECK, NULLARRAYCHECK): Use SAVE_PC.
	(_Jv_InterpMethod::compile): Translate bytecode PC values in the line
	table to direct threaded instruction values.
	(_Jv_StartOfInterpreter, _Jv_EndOfInterpreter): Removed.
	(_Jv_InterpMethod::run): No longer member function. All
	callers updated. Remove _Unwind calls. Call SAVE_PC whenever a call
	is made or where an instruction could throw.
	(_Jv_InterpMethod::get_source_line): New. Look up source line numbers
	in line_table.
	* prims.cc (catch_segv): Construct exception after MAKE_THROW_FRAME.
	(catch_fpe): Likewise.
	* stacktrace.cc: New file. Stack trace code now here.
	* gnu/gcj/runtime/MethodRef.java:
	* gnu/gcj/runtime/NameFinder.java: Mostly reimplemented. Now simply
	calls addr2line to look up PC addresses in a given binary or shared
	library.
	* gnu/gcj/runtime/StackTrace.java, gnu/gcj/runtime/natNameFinder.cc,
	gnu/gcj/runtime/natStackTrace.cc: Removed.
	* gnu/java/lang/MainThread.java (call_main): Add comment warning that
	this function name is specially recognised by the stack trace code
	and shouldn't be changed.
	* include/java-interp.h (DIRECT_THREADED, insn_slot): Moved here.
	(struct  _Jv_LineTableEntry, line_table, line_table_len): New.
	(_Jv_InterpMethod::run): Update declaration.
	(_Jv_StackTrace_): New friend. NameFinder and StackTrace no longer
	friends.
	(_Jv_InterpFrame): Renamed from _Jv_MethodChain. Add PC field.
	* include/java-stack.h: New file. Declarations for stack tracing.
	* include/jvm.h (_Jv_Frame_info): Removed.
	* java/lang/Class.h: Update friend declarations.
	* java/lang/VMClassLoader.java (getSystemClassLoader): Simplify
	exception message.
	* java/lang/VMThrowable.java (fillInStackTrace): Now native.
	(getStackTrace): Now native.
	(data): New RawDataManaged field.
	* java/lang/natClass.cc: Update includes.
	(forName): Use _Jv_StackTrace::GetCallingClass for
	calling-classloader check.
	(getClassLoader): Likewise.
	* java/lang/natRuntime.cc: Update includes.
	(_load): Use _Jv_StackTrace::GetFirstNonSystemClassLoader.
	* java/lang/natVMSecurityManager.cc: Update includes.
	(getClassContext): Use _Jv_StackTrace::GetClassContext.
	* java/lang/natVMThrowable.cc: New file. Native methods for
	VMThrowable.
	* java/lang/reflect/natArray.cc: Update includes.
	(newInstance): Use _Jv_StackTrace::GetCallingClass to implement
	accessibility check.
	* java/lang/reflect/natConstructor.cc: Update includes.
	(newInstance): Use _Jv_StackTrace::GetCallingClass to implement
	accessibility check.
	* java/lang/reflect/natField.cc: Update includes.
	(getAddr): Use _Jv_StackTrace::GetCallingClass to implement
	accessibility check.
	* java/lang/reflect/natMethod.cc: Update includes.
	(invoke): Use _Jv_StackTrace::GetCallingClass to implement
	accessibility check.
	* java/util/natResourceBundle.cc: Update includes.
	(getCallingClassLoader): Use _Jv_StackTrace::GetCallingClass.
	* java/util/logging/natLogger.cc: Update includes. Use
	_Jv_StackTrace::GetCallerInfo to get call-site info.
	* sysdep/generic/backtrace.h: Fallback backtrace code. Stub
	implementation.
	* sysdep/i386/backtrace.h: New. Fallback backtrace code. i386
	implementation.

From-SVN: r96253
2005-03-10 19:02:21 +00:00
Tom Tromey
b7a29fa9f2 natVMClassLoader.cc (defineClass): Reference 'systemClassLoader' field directly.
* java/lang/natVMClassLoader.cc (defineClass): Reference
	'systemClassLoader' field directly.
	* java/lang/natRuntime.cc (_load): Reference 'systemClassLoader'
	field directly.
	* java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader):
	Reference 'systemClassLoader' field directly.
	(_Jv_UnregisterInitiatingLoader): Likewise.
	(_Jv_FindClass): Likewise.

From-SVN: r96208
2005-03-09 20:58:17 +00:00
Andreas Tobler
9b868aff56 fdlibm.h: Merge an AIX define from GNU Classpath.
2005-03-09  Andreas Tobler  <a.tobler@schweiz.ch>

	* java/lang/fdlibm.h: Merge an AIX define from GNU Classpath.

	* java/lang/mprec.h: Remove commented headers. Fix comment to match
	the file in GNU Classpath style.

From-SVN: r96207
2005-03-09 21:57:25 +01:00
Tom Tromey
088a176274 VMCompiler.java (md5Digest): New field.
* java/lang/VMCompiler.java (md5Digest): New field.
	(compileClass): Clone md5Digest instead of looking up a new one.

From-SVN: r96039
2005-03-07 19:51:10 +00:00
Andreas Tobler
2fdedf0462 dtoa.c (_dtoa_r): Initialize variables ilim, ilim1 and spec_case.
2005-03-05  Andreas Tobler  <a.tobler@schweiz.ch>

	* java/lang/dtoa.c (_dtoa_r): Initialize variables ilim, ilim1 and
	spec_case. Initialize pointer mlo.

	* java/lang/strtod.c (_strtod_r): Initialize pointers bb, bd, ds and
	delta.

	* java/lang/e_asin.c (__ieee754_asin): Initialize variable t.

	* java/lang/e_exp.c (__ieee754_exp): Initialize variables hi, lo
	and k.

	* java/lang/e_rem_pio2.c (__ieee754_rem_pio2): Initialize
	uninitialized variable z.

	* gnu/java/net/natPlainDatagramSocketImplPosix.cc (mcastGrp): Ifdef
	possible unused variables.

	* gnu/java/nio/natPipeImplPosix.cc (init): Remove self.

	* jawt.c: Include <stdlib.h> to fix implict declaration of malloc.

From-SVN: r95925
2005-03-05 08:47:58 +01: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
Jeroen Frijters
b5abfc2344 Proxy.java, [...]: Don't catch java.lang.ThreadDeath.
2005-02-22  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/reflect/Proxy.java,
	java/net/URL.java,
	java/security/SecureRandom.java,
	java/util/Timer.java,
	java/util/prefs/AbstractPreferences.java:
	Don't catch java.lang.ThreadDeath.

From-SVN: r95415
2005-02-22 21:11:29 +00:00
Tom Tromey
af43b1adeb * java/lang/Object.h (_JvObjectPrefix): Declare as extern "Java".
From-SVN: r95405
2005-02-22 18:29:43 +00:00
Bryce McKinlay
f4294557b7 [multiple changes]
2005-02-21  Bryce McKinlay  <mckinlay@redhat.com>

	Merge serialization from GNU Classpath.
	* gcj/method.h: Add missing #includes.
	* java/io/ObjectInputStream.java (readClassDescriptor): Check for
	primitive class IDs on the stream here...
	(resolveClass): ...not here.
	* java/io/ObjectStreamField.java: Use VMObjectStream class calls to set
	fields.
	* java/io/VMObjectStreamClass.java (setDoubleNative, setFloatNative,
	setLongNative, setIntNative, setShortNative, setCharNative,
	setByteNative, setBooleanNative, setObjectNative): New native methods.
	* java/io/natVMObjectStreamClass.java (setDoubleNative, setFloatNative,
	setLongNative, setIntNative, setShortNative, setCharNative,
	setByteNative, setBooleanNative, setObjectNative): Implement them.
	* java/io/natObjectInputStream.cc (allocateObject): Add new parameters
	from Classpath's version. Use _Jv_FromReflectedConstructor(). Call
	the constructor here.
	(callConstructor): Removed.
	(getCallersClassLoader): Removed.
	* java/lang/reflect/Field.java (setByte, setShort, setInt, setLong,
	setFloat, setDouble, setChar, setBoolean): Add 'checkFinal' parameter
	to control whether setting final field values is permitted. Call
	getAddr() with checkFinal parameter instead of setAddr().
	* java/lang/reflect/natField.cc (getType): Lookup and resolve field
	only if not done already.
	(getAddr): Add checkFinal parameter. Do the final field check only if
	checkFinal is set.
	(setAddr): Removed.

2005-02-21  Mark Wielaard  <mark@klomp.org>

	# Fixes bug #11957
	* java/io/ObjectInputStream.java (resolveClass): Don't check "void"
	twice.

2005-02-21  Mark Wielaard  <mark@klomp.org>

	Fixes bug #11618.
	* java/io/ObjectInputStream.java (readClassDescriptor): Handle classes
	without a super class and us ObjectStreamClass.lookupForClassObject().
	(resolveClass): Check for primitive types.
	(lookupClass): Return null when argument is null.

2005-02-21  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java
	(readObject): Fix to consume TC_ENDBLOCKDATA after readExternal.

2005-02-21  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectOutputStream.java
	(writeObject, callWriteMethod): Replaced reflection with accessing
	cached info in ObjectStreamClass.
	(getMethod): Removed.
	* java/io/ObjectStreamClass.java
	(findMethod): Added check to make sure the method found has the
	right modifiers.
	(cacheMethods): Added writeReplace and writeObject methods.
	(setFlags): Look at new writeObjectMethod field instead of doing
	reflection again.
	(writeReplaceMethod): New field.
	(writeObjectMethod): New field.

2005-02-21  Guilhem Lavaux  <guilhem@kaffe.org>
	Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java
	(newObject): Changed prototype. Get a constructor reflect object
	directly.
	(callConstructor): Removed.
	(allocateObject): Changed prototype.
	(readClassDescriptor): Build the constructor reflection directly.
	(readObject): Invoke newObject using the new prototype.

	* java/io/ObjectStreamClass.java
	(firstNonSerializableParent): Removed.
	(firstNonSerializableParentConstructor): Added.

From-SVN: r95378
2005-02-22 03:13:35 +00:00