Skip to content
Snippets Groups Projects
  1. Jan 08, 2002
  2. Dec 10, 2001
    • Tom Tromey's avatar
      resolve.cc (_Jv_PrepareClass): Verify method here... · 6d8b1244
      Tom Tromey authored
      	* resolve.cc (_Jv_PrepareClass): Verify method here...
      	* defineclass.cc (handleMethodsEnd): ... not here.
      	* verify.cc (_Jv_BytecodeVerifier::initialize_stack): New method.
      	(_Jv_BytecodeVerifier::verify_instructions_0) [op_return]: Ensure
      	there are no uninitialized objects.
      	(_Jv_BytecodeVerifier::state::this_type): New field.
      	(_Jv_BytecodeVerifier::state::state): Initialize this_type.
      	(_Jv_BytecodeVerifier::state::copy): Copy this_type.
      	(_Jv_BytecodeVerifier::state::merge): Merge this_type.
      	(_Jv_BytecodeVerifier::state::check_no_uninitialized_objects):
      	Handle this_type.
      	(_Jv_BytecodeVerifier::state::check_this_initialized): New
      	method.
      	(_Jv_BytecodeVerifier::state::set_initialized): Handle this_type.
      	(_Jv_BytecodeVerifier::state::set_this_type): New method.
      	(_Jv_BytecodeVerifier::verify_instructions_0) [op_putfield]: Allow
      	assignment to fields of `this' before another initializer is run.
      
      From-SVN: r47826
      6d8b1244
  3. Nov 05, 2001
    • Tom Tromey's avatar
      Class.h (Class): Made _Jv_BytecodeVerifier a friend. · a12fe13d
      Tom Tromey authored
      	* java/lang/Class.h (Class): Made _Jv_BytecodeVerifier a friend.
      	* Makefile.in: Rebuilt.
      	* Makefile.am (libgcj_la_SOURCES): Added verify.cc.
      	* verify.cc: New file.
      	* include/java-interp.h (_Jv_count_arguments): Declare.
      	(_Jv_VerifyMethod): Likewise.
      	(class _Jv_InterpMethod): Made _Jv_BytecodeVerifier a friend.
      	(class _Jv_InterpException): Likewise.
      	* resolve.cc (_Jv_count_arguments): Renamed from count_arguments.
      	No longer static.  Updated callers.
      	* defineclass.cc (int_bits_to_float): Removed.
      	(long_bits_to_double): Likewise.
      	(prepare_pool_entry): Updated.
      	(handleCodeAttribute): Verify method (commented out for now).
      
      From-SVN: r46796
      a12fe13d
  4. Oct 16, 2001
    • Bryce McKinlay's avatar
      Eliminate use of C++ static constructors. · 107abb2f
      Bryce McKinlay authored
      	* 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
      107abb2f
  5. Oct 03, 2001
  6. Sep 21, 2001
    • Richard Henderson's avatar
      jvm.h (_Jv_VTable): Handle function descriptors for ia64... · f5ddf154
      Richard Henderson authored
              * include/jvm.h (_Jv_VTable): Handle function descriptors for ia64;
              add get_method, set_method, vtable_elt_size, new_vtable.
              (_Jv_ArrayVTable): Derive from _Jv_VTable.
              * resolve.cc (_Jv_PrepareClass): Use new _Jv_VTable methods.
              * interpret.cc (_Jv_InterpMethod::continue1): Likewise.
              * java/lang/natClassLoader.cc (_Jv_NewArrayClass): Likewise.
      
      From-SVN: r45734
      f5ddf154
  7. May 24, 2001
    • Tom Tromey's avatar
      [multiple changes] · 3610e0d5
      Tom Tromey authored
      2001-05-23  Tom Tromey  <tromey@redhat.com>
      
      	* posix-threads.cc (_Jv_self_cache): Renamed from self_cache.
      	* gcj/Makefile.in: Rebuilt.
      	* gcj/Makefile.am (gcj_HEADERS): Added libgcj-config.h.
      	* gcj/javaprims.h: Include gcj/libgcj-config.h.
      	* gcj/libgcj-config.h.in: New file.
      	* libgcj.spec.in (*jc1): Added @HASH_SYNC_SPEC@.
      	* configure: Rebuilt.
      	* configure.in: Enable hash synchronization by default on some
      	platforms.
      	(HASH_SYNC_SPEC): New subst.
      	(AC_CONFIG_HEADER): Added gcj/libgcj-config.h.
      	Correctly use `test -z' instead of `test -n' in a couple places.
      	(JV_HASH_SYNCHRONIZATION): Use AC_DEFINE; don't add to
      	LIBGCJ_CXXFLAGS.
      	* configure.host (enable_java_net_default): Initialize.
      	(enable_hash_synchronization_default): New variable.
      
      2001-05-23  Hans Boehm <Hans_Boehm@hp.com>
      
      	* boehm.cc (_Jv_MarkObj): Don't mark sync_info when hash
      	synchronization in use.
      	(_Jv_MarkArray): Likewise.
      	(_Jv_AllocBytes): Don't check return result.
      	(handle_out_of_memory): New function.
      	(_Jv_InitGC): Set GC_oom_fn.
      	(trace_one_vtable): New global.
      	(_Jv_AllocTraceOne): New function.
      	* configure.in: Added --enable-hash-synchronization.
      	* defineclass.cc, prims.cc, resolve.cc, java/lang/natString.cc,
      	java/net/natInetAddress.cc: Remove _Jv_AllocBytesChecked.
      	* nogc.cc (_Jv_AllocObj): Throw out-of-memory.
      	(_Jv_AllocArray): Likewise.
      	(_Jv_AllocBytes): Likewise.
      	(_Jv_AllocPtrFreeObject): New function.
      	(_Jv_AllocTraceOne): Likewise.
      	* posix-threads.cc (_Jv_ThreadRegister): Handle slow
      	pthread_self().
      	(self_cache): New global.
      	(_Jv_ThreadSelf_out_of_line): New function.
      	* prims.cc (_Jv_AllocBytesChecked): Removed.
      	(_Jv_ThrowNoMemory): New function.
      	(_Jv_AllocObject): Don't check for null return from allocator.
      	(_Jv_NewObjectArray): Likewise.
      	(_Jv_AllocPtrFreeObject): New function.
      	(_Jv_NewPrimArray): Allocate pointer-free object if possible.
      	* include/javaprims.h (_Jv_AllocPtrFreeObject): Declare.
      	(_Jv_MonitorEnter, _Jv_MonitorExit): Don't return value.
      	* include/boehm-gc.h (_Jv_AllocObj): Define.
      	(_Jv_AllocPtrFreeObj): Define.
      	* include/jvm.h (_Jv_AllocPtrFreeObj): Declare.
      	(_Jv_ThrowNoMemory): Declare.
      	(_Jv_AllocTraceOne): Declare.
      	(_Jv_AllocBytesChecked): Removed.
      	* include/posix-threads.h (_Jv_MutexInit, _Jv_MutexLock,
      	_Jv_MutexUnlock): Handle LOCK_DEBUG.
      	(_Jv_ThreadSelf): Handle case where system pthread_self() is
      	slow.
      	* java/lang/Class.h (Class): Declare _Jv_AllocPtrFreeObj as
      	friend.
      	* java/lang/Object.h (sync_info): Conditional upon presence of
      	hash synchronization.
      	* java/lang/natObject.cc: Much new code to handle thin locks and
      	hash synchronization.
      	* java/lang/natString.cc (_Jv_AllocString): Allocate pointer-free
      	object if possible.
      
      From-SVN: r42519
      3610e0d5
  8. Mar 26, 2001
    • Richard Henderson's avatar
      exception.cc (java_eh_info): Make value type jthrowable. · b3208f56
      Richard Henderson authored
      	* 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
      b3208f56
  9. Mar 23, 2001
    • Tom Tromey's avatar
      jni.cc (_Jv_JNI_GetAnyFieldID): Handle unresolved fields. · 83c64db6
      Tom Tromey authored
      	* 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
      83c64db6
  10. Oct 06, 2000
    • Tom Tromey's avatar
      natField.cc (BooleanClass): Don't define. · 1d336a09
      Tom Tromey authored
      	* 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
      1d336a09
  11. Sep 30, 2000
    • Hans Boehm's avatar
      Implement bitmap descriptor based marking for Boehm GC. · bf3b8e42
      Hans Boehm authored
      
      2000-09-30  Hans Boehm  <boehm@acm.org>
      	    Bryce McKinlay  <bryce@albatross.co.nz>
      
      	Implement bitmap descriptor based marking for Boehm GC.
      
      	* configure.in: Define JC1GCSPEC. Set it if boehm-gc is used.
      	* configure: Rebuilt.
      	* libgcj.spec.in: Pass JC1GCSPEC to jc1.
      	* include/jvm.h (struct _Jv_VTable): New field `gc_descr'. New inline
      	method get_finalizer().
      	(struct _Jv_ArrayVTable): Ditto. Declare method array with
      	NUM_OBJECT_METHODS elements instead of NUM_OBJECT_METHODS + 1.
      	(_Jv_AllocObj): Add new jclass parameter.
      	(_Jv_AllocArray): Ditto.
      	(_Jv_BuildGCDescr): New prototype.
      	* prims.cc (_Jv_AllocObject): Rename parameter `c' to `klass'. Pass
      	`klass' to _Jv_AllocObj. Don't set the new object's vtable. Use
      	get_finalizer() instead of direct finalizer vtable offset.
      	(_Jv_NewObjectArray): Rename parameter `clas' to `klass'. Pass
      	`klass' to _Jv_AllocArray. Don't set the new array's vtable.
      	(_Jv_NewPrimArray): Call _Jv_FindArrayClass before _Jv_AllocObj.
      	Pass `klass' to _Jv_AllocObj. Don't set the new array's vtable.
      	* resolve.cc (METHOD_NOT_THERE, METHOD_INACCESSIBLE): New #defines.
      	(_Jv_ResolvePoolEntry): Use METHOD_NOT_THERE and METHOD_INACCESSIBLE.
      	(_Jv_DetermineVTableIndex): Ditto.
      	(_Jv_PrepareClass): Ditto. Remove offset-by-one adjustments from vtable
      	calculations to account for new gc_descr field.
      	* boehm.cc: #include gc_gcj.h.
      	(obj_kind_x, obj_free_list): `#if 0'-ed away.
      	(_Jv_MarkObj): Check that vtable doesn't point to a cleared object.
      	New commentary from HB. Mark the classes vtable.
      	(_Jv_MarkArray): Check that vtable doesn't point to a cleared object.
      	(GC_DEFAULT_DESCR): New #define.
      	(_Jv_BuildGCDescr): New function. Use GC_DEFAULT_DESCR, for now.
      	(_Jv_AllocObj): New parameter `klass'. Use GC_GCJ_MALLOC ().
      	(_Jv_AllocArray): New parameter `klass'. Allocate with GC_MALLOC and
      	scan conservativly if size is less than min_heap_addr. Set vtable
      	pointer of new object before returning.
      	(_Jv_AllocBytes): Use GC_MALLOC_ATOMIC, not GC_GENERIC_MALLOC.
      	(_Jv_InitGC): Call GC_init_gcj_malloc(). Don't set up marking and
      	allocation for obj_kind_x.
      	* nogc.cc (_Jv_BuildGCDescr): New function. Return 0.
      	(_Jv_AllocObj): Set vtable on returned object.
      	(_Jv_AllocArray): Ditto.
      	* java/lang/Class.h (_Jv_NewObjectArray): No longer a friend.
      	(_Jv_NewPrimArray): Ditto.
      	(_Jv_AllocObj): Declare as a friend.
      	(_Jv_AllocArray): Ditto.
      	* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Copy gc_descr
      	from &ObjectClass into new array class. Remove offset-by-one
      	adjustments from `method' size calculations to account for gc_descr
      	field.
      
      Co-Authored-By: default avatarBryce McKinlay <bryce@albatross.co.nz>
      
      From-SVN: r36679
      bf3b8e42
  12. Mar 26, 2000
    • Tom Tromey's avatar
      [multiple changes] · 99444711
      Tom Tromey authored
      2000-03-26  Tom Tromey  <tromey@cygnus.com>
      
      	* java/lang/mprec.h: Use SIZEOF_VOID_P.
      	* interpret.cc: Use SIZEOF_VOID_P.
      	* include/java-cpool.h (_Jv_storeLong): Use SIZEOF_VOID_P.
      	(_Jv_loadLong): Likewise.
      	(_Jv_storeDouble): Likewise.
      	* configure: Rebuilt.
      	* configure.in: Check size of void*.
      
      	* resolve.cc (ncode): Use FFI_PREP_RAW_CLOSURE and FFI_RAW_SIZE.
      
      2000-03-26  Hans Boehm  <boehm@acm.org>
      
      	* include/java-cpool.h (_Jv_storeLong, _Jv_loadLong,
      	_Jv_storeDouble, _Jv_loadDouble): Define differently on 64 bit
      	machine.
      	* java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN or
      	__IEEE_LITTLE_ENDIAN appropriately on IA64.
      	* java/lang/mprec.h: Don't define Pack_32 on 64 bit machine.
      	* javaprims.h (_Jv_word): Added `l' and `d' entries in 64 bit
      	case.
      	* resolve.cc (FFI_PREP_RAW_CLOSURE): New define.
      	(FFI_RAW_SIZE): Likewise.
      	(_Jv_InterpMethod::ncode): Use them.
      	* interpret.cc (PUSHL, PUSHD, POPL, POPD, LOADL, LOADD, STOREL,
      	STORED): Define differently on a 64 bit machine.
      	(continue1): Use ffi_java_raw_call when appropriate.
      
      From-SVN: r32754
      99444711
  13. Mar 07, 2000
    • Tom Tromey's avatar
      All files: Updated copyright information. · 2ba5f774
      Tom Tromey authored
      	* All files: Updated copyright information.
      	* COPYING: New file.
      	* COPYING.LIB: Removed.
      	* LIBGCJ_LICENSE: We now use GPL + special exception.
      
      From-SVN: r32387
      2ba5f774
    • Bryce McKinlay's avatar
      resolve.cc (_Jv_SearchMethodInClass): New function. · ddf0fc6c
      Bryce McKinlay authored
      2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>
      
              * resolve.cc (_Jv_SearchMethodInClass): New function.
              (_Jv_ResolvePoolEntry): Search superinterfaces for interface
              methods.
              * java/lang/Class.h (_Jv_SearchMethodInClass): New prototype.
      
      2000-03-07  Bryce McKinlay  <bryce@albatross.co.nz>
      
              * java/lang/Class.h (union _Jv_IDispatchTable): New declaration.
              (struct _Jv_ifaces): New declaration.
              JV_CLASS: New macro definition.
              (getComponentType): Relocate below isArray() for inlining.
              (getModifiers): Declare `inline'.
              (getSuperclass): Ditto.
              (isArray): Ditto.
              (isPrimitive): Ditto.
              (_Jv_IsAssignableFrom): New prototype.
              (_Jv_LookupInterfaceMethodIdx): New prototype. Predeclare with "C"
              linkage.
              (_Jv_InitClass): Move from natClass.cc. Declare `inline'.
              Check for JV_STATE_DONE before invoking initializeClass().
              (_Jv_PrepareConstantTimeTables): New prototype.
              (_Jv_GetInterfaces): Ditto.
              (_Jv_GenerateITable): Ditto.
              (_Jv_GetMethodString): Ditto.
              (_Jv_AppendPartialITable): Ditto.
              (_Jv_FindIIndex): Ditto.
              depth, ancestors, idt: New class fields.
      
              * java/lang/natClass.cc (isAssignableFrom): Move functionality to
              inline function `_Jv_IsAssignableFrom'. Use that function.
              (isInstance): Declare `inline'.
              (initializeClass): Get lock on class before checking `state'. Unlock
              before calling resolveClass0. Call _Jv_PrepareConstantTimeTables
      	with the lock held.
              (_Jv_LookupInterfaceMethod): Use _Jv_GetMessageString.
              (_Jv_IsAssignableFrom): New inline function. Test assignability
      	using class->depth and ancestor table.
              (_Jv_IsInstanceOf): Use _Jv_IsAssignableFrom.
              (_Jv_CheckCast): Move from prims.cc. Use JV_CLASS and
              _Jv_IsAssignableFrom.
              (_Jv_CheckArrayStore): Ditto.
              (_Jv_LookupInterfaceMethodIdx): New function.
              INITIAL_IOFFSETS_LEN, INITIAL_IFACES_LEN: New #defines.
              (_Jv_PrepareConstantTimeTables): New function.
              (_Jv_IndexOf): Ditto.
              (_Jv_GetInterfaces): Ditto.
              (_Jv_GenerateITable): Ditto.
              (_Jv_GetMethodString): Ditto.
              (_Jv_AppendPartialITable): Ditto.
              iindex_mutex, iindex_mutex_initialized: New static fields.
              (_Jv_FindIIndex): New function.
      
              * java/lang/natClassLoader.cc (_Jv_NewClass): Set new jclass fields.
      
              * prims.cc (_Jv_CheckCast): Moved to natClass.cc.
              (_Jv_CheckArrayStore): Ditto.
              (JvNewCharArray, JvNewBooleanArray, JvNewByteArray, JvNewShortArray,
              JvNewIntArray, JvNewLongArray, JvNewFloatArray, JvNewDoubleArray):
              Moved to gcj/array.h.
              (_Jv_Realloc): New function.
      
              * gcj/cni.h: Move _Jv_PrimClass definitions to gcj/array.h.
      
              * gcj/array.h: _Jv_PrimClass definitions moved from gcj/cni.h.
              (JvNewCharArray, JvNewBooleanArray, JvNewByteArray,
              JvNewShortArray, JvNewIntArray, JvNewLongArray, JvNewFloatArray,
              JvNewDoubleArray): Implementations moved from prims.cc and
              declared `inline'.
      
              * gcj/javaprims.h (_Jv_Realloc): Prototype.
      
              * include/jvm.h (_Jv_LookupInterfaceMethodIdx): Prototype.
      
      From-SVN: r32382
      ddf0fc6c
  14. Feb 16, 2000
    • Tom Tromey's avatar
      resolve.cc (ncode): Set args_raw_size. · d348bda4
      Tom Tromey authored
      	* 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
      d348bda4
  15. Feb 10, 2000
    • Andrew Haley's avatar
      interpret.cc: Don't include fdlibm.h. · 715bdd81
      Andrew Haley authored
      2000-02-10  Andrew Haley  <aph@cygnus.com>
      
      	* interpret.cc: Don't include fdlibm.h.
      	Replace #if with #ifdef throughout.
      	Declare extern __ieee754_fmod.
      	(continue1): Remove op_getfield, op_getstatic, op_putfield,
      	op_putstatic insns.
      	* resolve.cc (_Jv_PrepareClass): Use imeth as method pointer.
      	Search class hierarchy for superclass vtable.
      
      	* java/lang/natClassLoader.cc (_Jv_UnregisterClass): Don't fall
      	off the end of a pointer list.
      
      	* java/lang/natThread.cc (stop): Don't abort, throw an exception
      	instead.
      	(suspend): Ditto.
      
      From-SVN: r31897
      715bdd81
  16. Feb 04, 2000
    • Tom Tromey's avatar
      defineclass.cc (handleMethodsBegin): Allocate _Jv_MethodBase pointers. · facc279f
      Tom Tromey authored
      	* 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
      facc279f
  17. Feb 02, 2000
    • Tom Tromey's avatar
      java-interp.h (_Jv_JNI_conversion_call): Declare. · ee6713e7
      Tom Tromey authored
      	* 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
      ee6713e7
  18. Jan 26, 2000
  19. Jan 20, 2000
  20. Jan 19, 2000
  21. Jan 04, 2000
    • Tom Tromey's avatar
      [multiple changes] · 0f918fea
      Tom Tromey authored
      2000-01-04  Tom Tromey  <tromey@cygnus.com>
      
      	* java/lang/reflect/natConstructor.cc (newInstance): Pass
      	declaring class as return_type argument to
      	_Jv_CallNonvirtualMethodA.
      	* java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA): In
      	constructor case, create object and use it as `this' argument.
      	* java/lang/Class.h (_getConstructors): Declare.
      	(_getFields): Declare.
      	* java/lang/Class.java (getConstructors): Wrote.
      	(_getConstructors): New native method.
      	(getDeclaredConstructors): Wrote.
      	(_getFields): Declare new native method.
      	* java/lang/natClass.cc (_Jv_LookupInterfaceMethod): Removed
      	incorrect comment.
      	(getMethod): Work correctly when class is primitive.
      	(getDeclaredMethods): Likewise.  Compute offset using `method',
      	not `mptr'.
      	(getDeclaredMethod): Likewise.
      	(getConstructor): Wrote.
      	(ConstructorClass): New define.
      	(getDeclaredConstructor): Wrote.
      	(_getConstructors): New method.
      	(_getFields): New method.
      	(getFields): Wrote.
      
      	* Makefile.in: Rebuilt.
      	* Makefile.am (AM_CXXFLAGS): Added -D_GNU_SOURCE.
      
      	* prims.cc: Remove `#pragma implementation'.
      	* gcj/array.h: Remove `#pragma interface'.
      
      	* prims.cc (_Jv_equaln): New function.
      	* java/lang/Class.java (getSignature): Declare.
      	* resolve.cc (_Jv_LookupDeclaredMethod): Moved to natClass.cc.
      	* java/lang/natClass.cc (_Jv_LookupDeclaredMethod): Moved from
      	resolve.cc.
      	(getSignature): New method.
      	(getDeclaredMethod): Wrote.
      	(getMethod): Wrote.
      	Include StringBuffer.h.
      	* java/lang/Class.h (Class): Added _Jv_FromReflectedConstructor
      	as a friend.  Unconditionally declare _Jv_LookupDeclaredMethod as
      	a friend.
      	(getSignature): Declare.
      	* include/jvm.h (_Jv_GetTypesFromSignature): Declare.
      	(_Jv_equaln): Declare.
      	(_Jv_CallNonvirtualMethodA): Declare.
      	* Makefile.in: Rebuilt.
      	* Makefile.am (nat_source_files): Added natConstructor.cc.
      	(java/lang/reflect/Constructor.h): New target.
      	* java/lang/reflect/natConstructor.cc: New file.
      	* java/lang/reflect/Constructor.java (newInstance): Now native.
      	(declaringClass): Renamed from decl_class.
      	(offset): Renamed from index.
      	(getType): New native method.
      	(getModifiers): Now native.
      	(getParameterTypes): Call getType if required.
      	(hashCode): Include hash code from declaring class.
      	(modifiers): Removed.
      	(toString): Call getType if required.
      	* gcj/method.h (_Jv_FromReflectedConstructor): New function.
      	* java/lang/reflect/natMethod.cc (hack_call): New method.
      	Removed `#if 0' around FFI code.
      	Include <gnu/gcj/RawData.h>.
      	(invoke): Use _Jv_CallNonvirtualMethodA.  Throw
      	IllegalArgumentException when argument object and class disagree.
      	(_Jv_GetTypesFromSignature): New function.
      	(getType): Use it.
      	(ObjectClass): New define.
      	(_Jv_CallNonvirtualMethodA): New function.
      	* java/lang/reflect/Method.java (hack_trampoline): New method.
      	(hack_call): New native method.
      
      1999-12-21  Per Bothner  <per@bothner.com>
      
      	* java/lang/natClass.cc (getDeclaredMethods): Correctly compute
      	offset in new Method.
      
      From-SVN: r31199
      0f918fea
  22. Sep 10, 1999
    • Tom Tromey's avatar
      configure: Rebuilt. · 27e934d8
      Tom Tromey authored
      	* configure: Rebuilt.
      	* configure.in: Build include/Makefile.
      	* Makefile.in: Rebuilt.
      	* Makefile.am (SUBDIRS): Added gcj and include.
      	(install-data-local): New target.
      	(extra_headers): New macro.
      	* include/Makefile.in: New file.
      	* include/Makefile.am: New file.
      
      	* interpret.cc: Don't include gcj/field.h or gcj/cni.h.
      	* java/lang/reflect/natField.cc: Don't include gcj/field.h or
      	gcj/cni.h.
      	* boehm.cc: Don't include java-threads.h or gcj/field.h.
      	* resolve.cc: Include config.h.
      	* defineclass.cc: Include config.h.
      	* include/java-interp.h: Don't include config.h.
      	* include/jvm.h: Include java-threads.h, Object.h, java-gc.h,
      	cni.h.
      
      	* gcj/javaprims.h: Regenerated namespace decls.
      	* classes.pl (scan): Don't put `;' after closing brace.
      
      	* Makefile.in: Rebuilt.
      	* Makefile.am (INCLUDES): Added -I for top_srcdir.
      	* configure.in: Create gcj/Makefile.
      	* gcj/Makefile.in: New file.
      	* gcj/Makefile.am: New file.
      	* java/lang/Object.h: Don't include any other headers.
      	* gcj/array.h: Renamed from include/java-array.h.
      	* gcj/field.h: Renamed from include/java-field.h.
      	* gcj/method.h: Renamed from include/java-method.h.
      	* gcj/cni.h, gcj/javaprims.h: Moved from include/.
      	Updated all files to reflect new include structure.
      
      From-SVN: r29278
      27e934d8
  23. Sep 01, 1999
    • Tom Tromey's avatar
      Modifier.java (ALL_FLAGS): New constant. · e409a2c8
      Tom Tromey authored
      	* java/lang/reflect/Modifier.java (ALL_FLAGS): New constant.
      	* resolve.cc: Removed constants defined by
      	java.lang.reflect.Modifier.
      	Include <java/lang/reflect/Modifier.h>.
      	(_Jv_ResolvePoolEntry): Use values from Modifier.
      	(_Jv_DetermineVTableIndex): Likewise.
      	(_Jv_PrepareClass): Likewise.
      	(ncode): Likewise.
      	* defineclass.cc (_Jv_ClassReader): Removed constants defined by
      	java.lang.reflect.Modifier.
      	Include <java/lang/reflect/Modifier.h>.
      	(checkExtends): Use values from Modifier.
      	(checkImplements): Likewise.
      	(handleField): Likewise.
      	(handleConstantValueAttribute): Likewise.
      	(handleFieldsEnd): Likewise.
      	(handleMethod ): Likewise.
      	(handleMethodsEnd): Likewise.
      	(handleClassBegin): Likewise.
      	* interpret.cc: Removed constants defined by
      	java.lang.reflect.Modifier.
      	(continue1): Use values from Modifier.
      	* java/lang/natClassLoader.cc: Removed constants defined by
      	java.lang.reflect.Modifier.
      
      From-SVN: r29037
      e409a2c8
  24. Aug 18, 1999
    • Kresten Krab Thorup's avatar
      natClassLoader.cc (_Jv_PrepareCompiledClass): Renamed from _Jv_InternClassStrings. · eb4534a6
      Kresten Krab Thorup authored
      	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Renamed
      	from _Jv_InternClassStrings.
      
      	* prims.cc (_Jv_RunMain): New function.
      	(JvRunMain): Remove gij-support.
      
      	* gij.cc (main): Use _Jv_RunMain.
      
      	* java/util/zip/ZipFile.java: Call readDirectory in constructor.
      
      	* interpret.cc (PUSHA, PUSHI, PUSHF, PUSHL, PUSHD): Don't store
      	argument in temp variable.
      	(continue1): For all op_x2y insns, use temp variable for
      	intermediate value.  Also remove some comments.
      
      	* java/lang/natClass.cc (newInstance): Call _Jv_InitClass.
      	(forName): Don't call _Jv_InitClass.
      
      	* java/lang/Class.java (getResource,getResourceAsStream): Implement.
      
      	* java/util/zip/ZipEntry.java (ZipEntry(ZipEntry)): New construcor.
      
      	* java/util/jar/JarInputStream.java: New file.
      
      	* java/util/jar/JarEntry.java: New file.
      
      	* java/util/jar/JarFile.java: New file.
      
      	* java/net/URLClassLoader.java: New file.
      
      	* java/net/JarURLConnection.java: New file.
      
      	* gnu/gcj/protocol/jar/Handler.java: New file.
      
      	* gnu/gcj/protocol/jar/Connection.java: New file.
      
      	* java/security/SecureClassLoader.java: New file.
      
      	* java/lang/ClassLoader.java (parent): New variable.
      	(ClassLoader (ClassLoader)): new constructor.
      	(findClass): New method.
      	(loadClass): Add default 1.2 implementation.
      	(getSystemResourceAsBytes, getResourceAsBytes): Removed.
      	(readfully): Removed.
      
      	* gnu/gcj/runtime/VMClassLoader.java: Moved from java/lang.
      	(findSystemClass): New method.
      	(VMClassLoader): Constructor rewritten.
      	(init): New method.
      	All other methods removed.
      
      	* java/lang/natClassLoader.cc: Change use of java::lang::VMClassLoader
      	to gnu::gcj::runtime::VMClassLoader.
      	(_Jv_InternClassStrings): Use _Jv_ResolvePoolEntry.  Also handle
      	class entries.
      	(VMClassLoader::findSystemClass): renamed from findBootClass.
      
      	* Makefile.am: Add new files.
      	(FirstThread.h, ThreadGroup.h): Add _Jv_Main friend.
      
      	* Makefile.in: Rebuilt.
      
      From-SVN: r28748
      eb4534a6
  25. Aug 14, 1999
    • Per Bothner's avatar
      resolve.cc (_Jv_PrepareClass): Use ClassLoader::resolveClass0. · efc3b511
      Per Bothner authored
      1999-08-14  Per Bothner  <per@bothner.com>
      
      	* resolve.cc (_Jv_PrepareClass): Use ClassLoader::resolveClass0.
      	* java/lang/natClass.cc (initializeClass): Likewise.
      	* java/lang/ClassLoader.java (resolveClass0): New static method.
      	(resolveClass): Call resolveClass0.
      	(findSystemClass): No longer static.
      
      From-SVN: r28711
      efc3b511
  26. Aug 10, 1999
    • Anthony Green's avatar
      [multiple changes] · 7941ceab
      Anthony Green authored
      Mon Aug  9 18:33:38 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
      
              * Makefile: Rebuilt.
      	* Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
      	builds.
      
      	* java/net/natPlainSocketImpl.cc: Include <sys/select.h> only if
      	present.
      
      	* configure: Rebuilt.
      	* configure.in: Properly align --help output, fix capitalization
      	and punctuation.
      	* acinclude.m4: Likewise.
      
      1999-08-09  Kresten Krab Thorup  <krab@gnu.org>
      
      	* include/javaprims.h (_Jv_word, _Jv_word2): New types.
      
      	* include/java-interp.h (_Jv_InterpMethodInvocation): Use _Jv_word.
      	(_Jv_callInterpretedMethod): Unused. Remove.
      	(_Jv_InterpMethod::run,run_normal,run_synch_object,run_synch_class):
      	Use ffi_raw.
      	* include/java-cpool.h (_Jv_get, _Jv_put): Remove.
      	(_Jv_{store,load}{Indexes,Int,Float,Long,Double}): Use _Jv_word.
      	* boehm.cc (_Jv_MarkObj): Use _Jv_word.
      	* interpret.cc: use _Jv_word.
      	* defineclass.cc: use_Jv_word.
      	* resolve.cc: Use _Jv_word.
      	(_Jv_ResolvePoolEntry): Return _Jv_word.
      	* java/lang/Class.h (_Jv_Constants): Use _Jv_word for cpool.
      	* java/lang/natClassLoader.cc (_Jv_InternClassStrings): Use _Jv_word.
      
      	* interpret.cc (gnu::gcj::runtime::MethodInvocation::continue1):
      	Change comment.
      
      From-SVN: r28641
      7941ceab
  27. Aug 08, 1999
    • Anthony Green's avatar
      [multiple changes] · 58eb6e7c
      Anthony Green authored
      1999-08-09  Anthony Green  <green@cygnus.com>
      
              * gij.cc: New file.
      
              * include/config.h.in: Rebuilt.
              * acconfig.h: Add INTERPRETER.
      
              * configure: Rebuilt.
      
              * Makefile.in: Rebuilt.
              * Makefile.am (libffi_files): Identify the libffi object files for
              inclusion in libgcj.
              (LIBFFIINCS): Define.
      
              * interpret.cc (gnu::gcj::runtime::MethodInvocation::continue1):
              Dummy definition for configurations without an interpreter.
      
              * java/net/natPlainSocketImpl.cc (getOption): Disamiguate call to
              java::lang::Boolean constructor.
      
              * include/java-interp.h: Always include java-cpool.h.
      
              * java/lang/natClassLoader.cc (getVMClassLoader0): Always return 0
              when INTERPRETER not defined.
      
              * java/lang/Class.h (finalize): Define.
      
              * gnu/gcj/util/path/DirectoryPathEntry.java (getURL): Catch
              IOException from File.getCanonicalPath.
              (getStream): Likewise.
      
              * NEWS: More news.
              * THANKS: More thanks.
      
      1999-08-09  Kresten Krab Thorup  <krab@gnu.org>
      
              * resolve.cc (get_ffi_type_from_signature): Generate uint16 for
              jchar type.
              (_Jv_PrepareClass): Allow non-abstract classes to
              have abstract subclasses.
              (_Jv_ResolvePoolEntry): Revert subclass check for protected
              fields and methods.
              * interpret.cc (continue1/perform_invoke): Don't sign extend
              uint16 return val.
              (continue1/lshl,lshr): Push long, not int.
              (continue1/ulshr): Use UINT64, not long long.
              * defineclass.cc (handleFieldsEnd): Handle case when all fields
              are static.
              * java/lang/natClass.cc (forName): Add call to _Jv_InitClass.
              * java/lang/FirstThread.java (run): Add top-level exception
              handler.
              (run0): Renamed from run.
      
      1999-08-08  Kresten Krab Thorup  <krab@gnu.org>
      
              * configure.in (--with-interpreter): Added.
              * include/config.h.in (INTERPRETER): Added.
      
              * java/lang/ClassLoader.java: File replaced.
              * java/lang/VMClassLoader.java: New file.
              * java/lang/natClassLoader.cc: New file.
              * gnu/gcj/runtime/MethodInvocation.java: New file.
              * gnu/gcj/util/path/SearchPath.java: New file.
              * gnu/gcj/util/path/PathEntry.java: New file.
              * gnu/gcj/util/path/DirectoryPathEntry.java: New file.
              * gnu/gcj/util/path/ZipPathEntry.java: New file.
              * gnu/gcj/util/path/URLPathEntry.java: New file.
              * gnu/gcj/util/path/CacheEntry.java: New file.
              * include/java-interp.h: New file.
              * include/java-cpool.h: New file.
              * include/java-insns.h: New file.
              * defineclass.cc: New file.
              * interpret.cc: New file.
              * resolve.cc: New file.
      
              * java/lang/natClass.cc (loaded_classes, _Jv_RegisterClass,
              _Jv_RegisterClasses, _Jv_FindClassInCache, _Jv_FindClass,
              _Jv_NewClass, _Jv_FindArrayClass): Moved to natClassLoader.cc.
              (finalize): New.
              (STATE_NOTHING, STATE_RESOLVED, STATE_IN_PROGRESS, STATE_DONE,
              STATE_ERROR): Moved to java/lang/Class.h and renamed with JV_
              prefix.
              (initializeClass): Use new JV_ prefixed names.  Also, call
              ClassLoader::resolveClass instead of _Jv_ResolveClass.
      
              * java/lang/Class.h (JV_STATE_PRELOADING, JV_STATE_LOADING,
              JV_STATE_LOADED, JV_STATE_COMPILED, JV_STATE_PREPARED,
              JV_STATE_LINKED): New.
              (_Jv_WaitForState, _Jv_RegisterInitiatingLoader,
              _Jv_UnregisterClass, _Jv_InternClassStrings): New friends.
              (_Jv_IsInterpretedClass, _Jv_InitField, _Jv_LookupDeclaredMethod,
              _Jv_DetermineVTableIndex, _Jv_ResolvePoolEntry, _Jv_PrepareClass,
              _Jv_ClassReader, _Jv_InterpClass, _Jv_InterpMethod,
              _Jv_InterpMethodInvocation): New friends for interpreter.
              (finalize): New.
              (CONSTANT_Class, CONSTANT_String, etc.): Moved to
              include/java-cpool.h and renamed with JV_ prefix.
      
              * include/jvm.h (_Jv_makeUtf8Const, _Jv_makeUtf8TypeConst): New
              decls.
              (_Jv_UnregisterClass): New decl.
      
              * java/lang/natClassLoader.cc (_Jv_FindArrayClass): Added
              class loader argument.
              (_Jv_FindClass): Use class loader.
      
              * prims.cc (_Jv_makeUtf8Const): New function.
              (_Jv_NewObjectArray): Change use of _Jv_FindArrayClass.
              (_Jv_NewPrimArray): Ditto.
              (_Jv_FindClassFromSignature): Ditto.
              * java/lang/reflect/natArray.cc (newInstance): Ditto.
              * java/lang/reflect/natMethod.cc (getType): Ditto.
      
              * include/java-field.h (_Jv_Field::isRef): Make robust for
              non-resolved contexts.
      
              * boehm.cc (_Jv_MarkObj): Mark interpreter-related fields.
              Also, don't mark class->next field.
      
              * java/lang/VirtualMachineError.java: Added FIXME note.
      
              * configure.in (INTERPSPEC): New spec.
              * libgcj.spec.in: Added INTERPSPEC.
              * Makefile.am: Added gcjh friends for java/lang/VMClassLoader and
              gnu/gcj/runtime/MethodInvocation.
              (libgcj_la_SOURCES): Added resolve.cc defineclass.cc interpret.cc.
              (ordinary_java_source_files): Added above mentioned java classes.
      
              * configure: Rebuilt.
              * Makefile.in: Rebuilt.
      
      From-SVN: r28597
      58eb6e7c
Loading