2001-12-29 Andreas Tobler * libjava/java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN for Darwin. 2001-12-21 Tom Tromey * java/io/ObjectInputStream.java (enableResolveObject): Use correct security check. * java/io/ObjectOutputStream.java (enableReplaceObject): Use correct security check. Fix for PR java/5165: * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Convert any constant string field to a String; not just final fields. Fix for PR libgcj/2428: * java/lang/natClass.cc: Include RuntimePermission.h. (getClassLoader): Define. * java/lang/Class.h (Class.getClassLoader): Only declare. 2001-12-19 Tom Tromey * java/awt/FlowLayout.java (FlowLayout(), FlowLayout(int)): Set gaps to 5. (FlowLayout(int,int,int)): Use methods to set fields. (getSize): Skip invisible components. (layoutContainer): Skip invisible components. 2001-12-19 Bryce McKinlay * include/jvm.h (_Jv_BuildGCDescr): Declare unconditionally. * nogc.cc (_Jv_BuildGCDescr): Define unconditionally. * boehm.cc (_Jv_BuildGCDescr): Likewise. 2001-12-18 Tom Tromey * java/text/CollationElementIterator.java (secondaryOrder): Cast result to `short'. (tertiaryOrder): Likewise. 2001-12-16 Tom Tromey For PR libgcj/5103: * include/jvm.h (__GCJ_JNI_IMPL__): Define. * include/config.h.in: Rebuilt. * configure: Rebuilt. * configure.in: Define JV_HAVE_INTTYPES_H if inttypes.h found. Added comment for HAVE_DLOPEN to avoid autoheader error. * gcj/libgcj-config.h.in (JV_HAVE_INTTYPES_H): Added. * include/jni.h: Include . Don't include CNI-specific headers if we are compiling ordinary JNI code with a C++ compiler. Include and JNIWeakRef.h when appropriate. * jni.cc: Don't include JNIWeakRef.h. (__GCJ_JNI_IMPL__): Don't define. For PR java/5088: * java/lang/natClassLoader.cc (_Jv_InitNewClassFields): New function. (_Jv_NewClass): Use it. (defineClass0): Use it. * prims.cc (_Jv_InitPrimClass): Adjust vtable here. (_Jv_InitPrimClass): Use _Jv_InitNewClassFields. (_Jv_NewArray): Don't abort; just throw exception. Include InternalError.h. * java/lang/Class.h (Class::Class): Declare, don't define. (Class): Declare _Jv_InitNewClassFields as a friend. (union _Jv_Self): Removed. * Makefile.in: Rebuilt. * Makefile.am (ordinary_java_source_files): Removed old file; added new file. * gnu/java/math/MPN.java: New file. * gnu/gcj/math/MPN.java: Removed. * java/math/BigInteger.java: Merged with Classpath. 2001-12-16 Bryce McKinlay * java/io/DataOutputStream (write (byte[], int, int)): Update "written" correctly. Fix from the ORP team. 2001-12-15 Bryce McKinlay * include/jvm.h (_Jv_VTable::idx_to_offset): New method. * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Call _Jv_MakeVTable and _Jv_LinkOffsetTable if needed. * java/lang/Class.h (_Jv_Method): Add "index" field. (_Jv_MethodSymbol): New struct type. (_Jv_LinkOffsetTable, _Jv_LayoutVTableMethods, _Jv_SetVTableEntries, _Jv_MakeVTable): Friends. (otable, otable_syms): New Class fields. * java/lang/natClass.cc (_Jv_LinkOffsetTable): New function. (isVirtualMethod): New static function. (_Jv_LayoutVTableMethods): New function. (_Jv_SetVTableEntries): New function. (_Jv_MakeVTable): New function. 2001-12-15 Bryce McKinlay * java/util/BitSet.java (and): Fix off-by-one bug, don't skip part of the bitset. (andNot): Likewise. (xor): Likewise. 2001-12-15 Bryce McKinlay * java/util/LinkedList.java (LinkedListItr.add): Don't skip the next entry. 2001-12-15 Eric Blake * java/util/TreeMap.java (removeNode): Fix bug in node removal. 2001-12-15 Bryce McKinlay * java/util/AbstractCollection.java (containsAll): Use size of the correct collection for loop bound. * java/util/AbstractList.java (iterator.next): Increment pos after calling get on backing list. (listIterator.next): Likewise. * java/util/LinkedList.java (addLastEntry): Don't increment size before checking for size == 0. (addFirstEntry): Rearrange to match addLastEntry. (add): Do not increment size before inserting the new entry. * java/util/AbstractCollection.java (addAll): Use size of the correct collection for loop bound. 2001-12-15 Bryce McKinlay * java/util/AbstractSet.java (removeAll): Fix scoping thinko. * java/util/HashMap.java (putAllInternal): Set size here. * java/util/Hashtable.java (putAllInternal): New method. Copy contents of a map efficiently without calling put() or putAll(). (Hashtable (map)): Use putAllInternal. (clone): Likewise. 2001-12-15 Eric Blake * java/util/Collections.java: * java/util/Vector.java: * java/util/WeakHashMap.java: Fix spelling errors. 2001-12-15 Eric Blake * java/util/AbstractCollection.java (removeAllInternal), (retainAllInternal): Add hooks for use by ArrayList. * java/util/AbstractList.java: Minor code updates. Fix some scoping. * java/util/AbstractMap.java: ditto * java/util/ArrayList.java (readObject, writeObject): ditto (removeAllInternal, retainAllInternal): Optimize. * java/util/Arrays.java: ditto * java/util/Collections.java: ditto. Change order of parameters to equals(Object, Object) to match specs. * java/util/Dictionary.java: Improve javadoc. (Dictionary): Add explicit constructor. * java/util/HashMap.java: Improve javadoc. Rearrange methods to follow order in JDK. Cleanups related to recent code migration to AbstractMap. Fix some scoping. (entrySet): Cache the result. (modCount): Ensure that this is updated correctly. * java/util/HashSet.java: Improve javadoc. Fix some scoping. (init): Add hooks for LinkedHashSet. (map): Use "" instead of Boolean.TRUE in backing map. Use package-private API where possible for less overhead. (readObject, writeObject): Fix serialization. * java/util/Hashtable.java: Improve javadoc. Fix some scoping. (entrySet, keySet, values): Cache the result. (modCount): Ensure that this is updated correctly. (contains, remove): Fix NullPointer checking to match specs. (class Enumeration): Make more like HashIterator. * java/util/IdentityHashMap.java: Minor code updates. (modCount): Ensure that this is updated correctly. (readObject, writeObject): Fix serialization. * java/util/LinkedHashMap.java: Minor code updates. Cleanups related to recent code migration to AbstractMap. * java/util/LinkedHashSet.java: New file. * java/util/LinkedList.java: (readObject, writeObject): Fix serialization. * java/util/Makefile.am: List recently added files. * java/util/Stack.java: Minor code updates. * java/util/TreeMap.java: Improve javadoc. Overhaul the class to be more efficient. Fix some scoping. Rearrange the methods. (nil): Ensure that this can be thread-safe, and make it a static final. Initialize it to be more useful as a sentinal node. (Node): Specify color in constructor. (deleteFixup, insertFixup): Improve comments and algorithm. (fabricateTree): Redesign with less overhead. (lowestGreaterThan): Add parameter first to make SubMap easier. (removeNode): Patch hole where nil was being modified. Choose predecessor instead of successor so in-place swap works. (class VerifyResult, verifyTree, verifySub, verifyError): Remove this dead code after verifying the class works. (class SubMap): Rewrite several algorithms to avoid problems with comparing nil. * java/util/TreeSet.java: Improve javadoc. Fix some scoping. (clone): Fix ClassCastException when cloning subSet(). (readObject, writeObject): Fix serialization. * java/util/WeakHashMap.java: Improve javadoc. Fix some scoping. (NULL_KEY): Make it compare as null, for ease elsewhere. (Class WeakEntry): Rename from Entry, to avoid shadowing Map.Entry. Add missing toString. (modCount): Ensure that this is updated correctly. (clear, containsValue, keySet, putAll, values, WeakHashMap(Map)): Add missing methods and constructor. 2001-12-15 Eric Blake * java/util/ArrayList.java (checkBoundExclusive), (checkBoundInclusive): Rename from range??clusive, to match AbstractList. * java/util/LinkedList.java (checkBoundsExclusive), (checkBoundsInclusive): ditto * java/util/Vector.java (checkBoundExclusive), (checkBoundInclusive): Move bounds checking into common methods. 2001-12-15 Eric Blake * java/util/AbstractList.java: (modCount): Make sure it is updated in all needed places. * java/util/ArrayList.java: Improve javadoc. Implements RandomAccess. Add serialVersionUID. Reorder methods. (modCount): Make sure it is updated in all needed places. (rangeExclusive, rangeInclusive): Add common methods for bounds check. (isEmpty): Add missing method. * java/util/Collections.java: (class SynchronizedList): Make package visible. * java/util/ConcurrentModificationException.java: Improve javadoc. * java/util/EmptyStackException.java: Improve javadoc. * java/util/LinkedList.java: Improve javadoc. (modCount): Make sure it is updated in all needed places. (rangeExclusive, rangeInclusive): Add common methods for bounds check. * java/util/NoSuchElementException.java: Improve javadoc. * java/util/Stack.java: Improve javadoc. Fix synchronization issues. (modCount): Make sure it is updated in all needed places. * java/util/Vector.java: Improve javadoc. Fix synchronization issues. Implements RandomAccess. Reorder methods. (modCount): Make sure it is updated in all needed places. (setSize): Fix according to specifications: this does not dictate the backing array size. (removeAll, retainAll): Faster implementations. 2001-12-15 Eric Blake * java/util/BitSet.java: Improve javadoc. (cardinality(), clear(), clear(int, int), flip(int)), (flip(int, int), get(int, int), intersects(BitSet), isEmpty()), (nextClearBit(int), nextSetBit(int), set(int, boolean)), (set(int, int), set(int, int, boolean)): Add new JDK 1.4 methods. (clone): Fix so subclasses clone correctly. 2001-12-15 Eric Blake * java/util/AbstractCollection.java: Improve javadoc. (AbstractCollection()): Make constructor protected. (equals(Object, Object), hashCode(Object)): Add utility methods. * java/util/AbstractList.java: Improve javadoc. (AbstractList()): Make constructor protected. (indexOf(Object)): Call listIterator(), not listIterator(int). (iterator()): Follow Sun's requirement to not use listIterator(0). (listIterator(int)): Make AbstractListItr anonymous. (subList(int, int)): Add support for RandomAccess. (SubList.add(int, Object), SubList.remove(Object)): Fix bug with modCount tracking. (SubList.addAll(Collection)): Add missing method. (SubList.listIterator(int)): Fix bugs in indexing, modCount tracking. (class RandomAccessSubList): Add new class. * java/util/AbstractMap.java: Improve javadoc. (keys, values, KEYS, VALUES, ENTRIES): Consolidate common map fields. (AbstractMap()): Make constructor protected. (equals(Object, Object), hashCode(Object)): Add utility methods. (equals(Object)): Change algorithm to entrySet().equals(m.entrySet()), as documented by Sun. (keySet(), values()): Cache the collections. * java/util/AbstractSequentialList.java: Improve javadoc. (AbstractSequentialList()): Make constructor protected. * java/util/AbstractSet.java: Improve javadoc. (AbstractSet()): Make constructor protected. (removeAll(Collection)): Add missing method. * java/util/Arrays.java: Improve javadoc, rearrange method orders. (defaultComparator): Remove, in favor of Collections.compare(Object, Object, Comparator). (binarySearch, equals, sort): Fix natural order comparison of floats and doubles. Also improve Object comparison - when comparator is null, use natural order. (fill, sort): Add missing checks for IllegalArgumentException. (sort, qsort): Fix sorting bugs, rework the code for more legibility. (mergeSort): Inline into sort(Object[], int, int, Comparator). (class ArrayList): Rename from ListImpl, and make compatible with JDK serialization. Add methods which more efficiently override those of AbstractList. * java/util/Collections: Improve javadoc. (isSequential(List)): Add and use a method for deciding between RandomAccess and sequential algorithms on lists. (class Empty*, class Synchronized*, class Unmodifiable*): Make compliant with JDK serializability. (class Singleton*, class CopiesList, class RevereseComparator), (class UnmodifiableMap.UnmodifiableEntrySet), (class *RandomAccessList): New classes for serial compatibility. (class Empty*, class Singleton*, class CopiesList): Add methods which more efficiently override those of Abstract*. (search): Inline into binarySearch(List, Object, Comparator). (binarySearch): Make sequential search only do log(n) comparisons, instead of n. (copy(List, List)): Do bounds checking before starting. (indexOfSubList, lastIndexOfSubList, list, replaceAll, rotate), (swap): Add new JDK 1.4 methods. (binarySearch, max, min, sort): Allow null comparator to represent natural ordering. (reverse(List)): Avoid unnecessary swap. (shuffle(List, Random)): Do shuffle in-place for RandomAccess lists. (SingletonList.get): Fix logic bug. (SingletonMap.entrySet): Make the entry immutable, and cache the returned set. (SynchronizedCollection, SynchronizedMap, UnmodifiableCollection), (UnmodifiableMap): Detect null pointer in construction. (SynchronizedMap, UnmodifiableMap): Cache collection views. * java/util/BasicMapEntry: Improve javadoc. 2001-12-14 Hans Boehm * libjava/prims.cc: Some old cleanups. The collector now handles test for out of memory. * libjava/prims.cc, libjava/gcj/javaprims.h: (_Jv_AllocObjectNoInitNoFinalizer, _Jv_AllocObjectNoFinalizer): New functions for finalizer-free allocation. (jvmpi_notify_alloc): Became separate function. * libjava/java/lang/Object.h, libjava/include/jvm.h: Adjust for revised vtable layout on IA64. With TARGET_VTABLE_USES_DESCRIPTORS, there is only one extra descriptor. 2001-12-12 Tom Tromey * prims.cc (_Jv_RunMain): Use `using' to simplify code. Set _Jv_Jar_Class_Path early. * jni.cc (call): Synchronize if required. * gij.cc (main): Clarify --help output. * gnu/gcj/runtime/StringBuffer.java (ensureCapacity_unsynchronized): Ensure we always get at least `minimumCapacity' characters in new buffer. 2001-12-11 Tom Tromey * java/lang/String.java (String): New constructor. * gnu/gcj/runtime/natStringBuffer.cc: New file. * gnu/gcj/runtime/StringBuffer.java: New file. * Makefile.in: Rebuilt. * Makefile.am (ordinary_java_source_files): Added gnu/gcj/runtime/StringBuffer.java. (nat_source_files): Added gnu/gcj/runtime/natStringBuffer.cc. 2001-12-10 Tom Tromey For PR libgcj/1147: * prims.cc (JvConvertArgv): Convert using current locale's encoding. 2001-12-10 Tom Tromey Fix for PR libgcj/5064. * java/lang/natClassLoader.cc: Don't include stdio.h. (_Jv_RegisterClassHookDefault): Don't use snprintf. 2001-12-09 Per Bothner * gnu/gcj/xlib/XImage.java (toString): Add missing initialization. 2001-12-09 Tom Tromey * 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. * Makefile.in: Rebuilt. * Makefile.am (gnu/gcj/runtime/VMClassLoader.h): Use `::java'. 2001-12-08 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (java/lang/reflect/Method.h): ObjectInputStream now a friend. * java/lang/natClass.cc (getSignature): Only look at elements of non-null parameters. (getPrivateMethod): Removed old FIXME comment. * java/io/natObjectInputStream.cc (allocateObject): Removed old FIXME comment. (callConstructor): Simply use `NULL' for value of parameters. (ObjectClass): Removed. (ClassClass): Likewise. * java/io/ObjectInputStream.java (readObject): Fixed typo. * verify.cc (_Jv_BytecodeVerifier::is_assignable_from_slow): Handle case of array whose component type is not prepared. 2001-12-07 Tom Tromey * java/lang/ClassLoader.java (defineClass): Rethrow any LinkageError. * java/lang/ThreadGroup.java (uncaughtException): Print message to System.err. Required by spec. * verify.cc (_Jv_BytecodeVerifier::branch_prepass): Set start_PC earlier, for error handling. (_Jv_BytecodeVerifier::note_branch_target): Fixed branch target check. 2001-12-06 Tom Tromey * verify.cc (_Jv_BytecodeVerifier::FLAG_JSR_TARGET): Removed. (_Jv_BytecodeVerifier::note_branch_target): Likewise. * verify.cc (_Jv_BytecodeVerifier::type_val): Added unused_by_subroutine_type. (_Jv_BytecodeVerifier::type::merge): Handle unused_by_subroutine_type. (_Jv_BytecodeVerifier::state::state): Added `ret_semantics' argument. (_Jv_BytecodeVerifier::state::copy): Likewise. (_Jv_BytecodeVerifier::push_jump_merge): Pass `ret_semantics' to state constructor. (_Jv_BytecodeVerifier::state::is_unmerged_ret_state): New method. (_Jv_BytecodeVerifier::pop_jump): Don't accept a jump which is from an unmerged ret. (_Jv_BytecodeVerifier::verify_instructions_0): Don't let an unmerged ret state skip verification in the fall-through case. (debug_print): New function. (_Jv_BytecodeVerifier::type::print): New method. (_Jv_BytecodeVerifier::state::print): New method. (_Jv_BytecodeVerifier::push_jump_merge): Print state. (_Jv_BytecodeVerifier::verify_instructions_0): Likewise. (_Jv_BytecodeVerifier::get_variable): Don't call note_variable. (_Jv_BytecodeVerifier::_Jv_BytecodeVerifier): Print debug information. 2001-12-05 Tom Tromey * defineclass.cc (character): Removed. (prepare_character): Removed. (is_identifier_start): Use Character, not character. (is_identifier_part): Likewise. 2001-12-04 Tom Tromey * verify.cc (_Jv_BytecodeVerifier::linked_utf8): New structure. (_Jv_BytecodeVerifier::utf8_list): New field. (_Jv_BytecodeVerifier::_Jv_BytecodeVerifier): Initialize it. (_Jv_BytecodeVerifier::~_Jv_BytecodeVerifier): Free it. (_Jv_BytecodeVerifier::make_utf8_const): New method. (_Jv_BytecodeVerifier::get_one_type): Use it. (_Jv_BytecodeVerifier::type::merge): When using local semantics, if the destination type is already unsuitable then we didn't change. * defineclass.cc (read_one_method_attribute): `end_pc' for an exception can be equal to code length. * verify.cc (_Jv_BytecodeVerifier::verify_instructions_0): Removed `start_PC' from error invocation where it didn't make sense, and updated error message. Use `copy' to copy a state. Only try to merge current state with saved state when we've fallen through from the previous instruction. (_Jv_BytecodeVerifier::pop_ref_or_return): New method. (_Jv_BytecodeVerifier::verify_instructions_0) [op_astore_0]: Use pop_ref_or_return. (_Jv_BytecodeVerifier::verify_instructions_0) [op_astore]: Likewise. (_Jv_BytecodeVerifier::push_jump_merge): Pass max_locals, not max_stack, to merge. (_Jv_BytecodeVerifier::verify_instructions_0): Likewise. (_Jv_BytecodeVerifier::push_jump_merge): Merge from new state into state at branch target, not vice versa. (_Jv_BytecodeVerifier::branch_prepass): Allow end of exception to be equal to code length. Removed redundant test to see if exception start is after exception end. (_Jv_BytecodeVerifier::verify_instructions_0): Type of argument to `finally' is Throwable. 2001-12-04 Bryce McKinlay * Makefile.in: Rebuilt with automake-gcj. 2001-12-03 Tom Tromey * defineclass.cc (handleMethodsEnd): Invoke verifier here... (handleCodeAttribute): ... not here. * verify.cc (_Jv_BytecodeVerifier::state::state): Use `copy', not structure assignment. 2001-12-02 Bryce McKinlay * Makefile.am (nat_files, x_nat_files): Make sure the dependencies don't get deleted if compilation fails. * Makefile.in: Rebuilt. 2001-11-30 Bryce McKinlay * Makefile.am (nat_headers, x_nat_headers): Depend on .class files, not libgcj.jar. (nat_files, x_nat_files): Build native files in subdirectories using the same dependency options as the java files. (gnu/gcj/runtime/FirstThread.h): Remove explicit rule and friend declarations. * configure.in: Put dependencies for .cc files in deps.mak. * Makefile.in: Rebuilt. * configure: Rebuilt. 2001-11-25 Tom Tromey Fix for PR libgcj/2024, plus other class name cleanups: * include/jvm.h (_Jv_VerifyFieldSignature, _Jv_VerifyMethodSignature, _Jv_VerifyClassName, _Jv_VerifyIdentifier, _Jv_ClassNameSamePackage): Moved from ... * include/java-interp.h: ... here. * defineclass.cc (UTF8_PEEK): No longer conditional on interpreter. (_Jv_VerifyOne): Likewise. (_Jv_VerifyFieldSignature): Likewise. (_Jv_VerifyMethodSignature): Likewise. (is_identifier_start): Likewise. (is_identifier_part): Likewise. (_Jv_VerifyIdentifier): Likewise. (_Jv_VerifyClassName): Likewise. (_Jv_VerifyClassName): Likewise. (_Jv_ClassNameSamePackage): Likewise. (_Jv_VerifyClassName): Fail if class name is too long. * java/lang/natClassLoader.cc (_Jv_NewArrayClass): Disallow array of void. * java/lang/natClass.cc (forName): Check syntax of class name. Include IllegalArgumentException.h. 2001-11-22 Tom Tromey * verify.cc (_Jv_BytecodeVerifier::branch_prepass): Use java_opcode as type for switch. [op_wide]: Likewise. (_Jv_BytecodeVerifier::verify_instructions_0): Likewise. [op_invokevirtual]: Likewise. * include/java-insns.h (java_opcode): Give enum a name. 2001-11-25 Tom Tromey Fix for PR libgcj/4583: * java/math/BigDecimal.java (BigDecimal(double)): Rewrote. (BigDecimal(String)): Likewise. 2001-11-19 Tom Tromey * verify.cc (_Jv_BytecodeVerifier::branch_prepass) [op_iinc]: Uses two operand bytes, not one. [op_arraylength]: Has no operands in bytecode. (_Jv_BytecodeVerifier::push_jump): Fixed call to check_no_uninitialized_objects. (_Jv_BytecodeVerifier::push_exception_jump): Likewise. (_Jv_BytecodeVerifier::handle_ret_insn): Likewise. (_Jv_BytecodeVerifier::handle_jsr_insn): Likewise. * verify.cc (_Jv_BytecodeVerifier::require_array_type): Special case for boolean arrays. * verify.cc (_Jv_BytecodeVerifier::compute_jump): Put PC into error message. * verify.cc (_Jv_BytecodeVerifier::verify_instructions_0) [op_lshl, op_lshr, op_lushr]: Shift argument is an int, not a long. 2001-11-18 Tom Tromey * verify.cc (type::to_array): New method. (_Jv_BytecodeVerifier::verify_instructions_0) [op_anewarray]: Construct new array type. * verify.cc (_Jv_BytecodeVerifier::branch_prepass) [op_sipush]: Skip a short, not a byte. [op_newarray]: Skip a byte, not a short. * verify.cc (_Jv_BytecodeVerifier::get_type_val_for_signature): Added `B' case. * verify.cc (_Jv_BytecodeVerifier::get_ushort): Use `jint' for temporary values. (_Jv_BytecodeVerifier::get_short): Likewise. (_Jv_BytecodeVerifier::get_int): Likewise. (_Jv_BytecodeVerifier::check_return_type): Reverse ordering of `compatible' call. * verify.cc (_Jv_BytecodeVerifier::pop_type): Put PC into error message. (_Jv_BytecodeVerifier::pop64): Likewise. (_Jv_BytecodeVerifier::pop32): Likewise. (_Jv_BytecodeVerifier::pop_raw): Likewise. (_Jv_BytecodeVerifier::pop_type): Promote the match type. (type::set_initialized): Only modify uninitialized types. (type::set_uninitialized): Fix shadowing bug. Simplify code. * verify.cc: Include StringBuffer.h. (verify_fail): Added pc argument. Use StringBuffer to construct exception message. (_Jv_BytecodeVerifier::verify_instructions_0): Put PC into error message. (_Jv_BytecodeVerifier::check_return_type): Likewise. (_Jv_BytecodeVerifier::handle_field_or_method): Likewise. (_Jv_BytecodeVerifier::check_constant): Likewise. (_Jv_BytecodeVerifier::check_class_constant): Likewise. (_Jv_BytecodeVerifier::check_pool_index): Likewise. (_Jv_BytecodeVerifier::get_variable): Likewise. (_Jv_BytecodeVerifier::branch_prepass): Likewise. Also, correctly check exception handler endpoint. (_Jv_BytecodeVerifier::verify_instructions_0): Correctly handle wide arguments to current method. (_Jv_BytecodeVerifier::check_wide_constant): New method. (_Jv_BytecodeVerifier::verify_instructions_0) [op_ldc2_w]: Use it. 2001-11-17 Anthony Green * jni.cc (unwrap): Fix test for wrapped objects. 2001-11-16 Tom Tromey * verify.cc (_Jv_BytecodeVerifier::check_field_constant): Handle case where field has primitive type. * verify.cc (_Jv_BytecodeVerifier::is_assignable_from_slow): New method. (type::compatible): Use it. (type::merge): Likewise. (type::promote): Return a `type&'. (get_one_type): Promote return value. Re-merge with Classpath, from Brian Jones: * java/lang/Integer.java (getInteger): Attempt to decode the value of the system property instead of the name of the system property. (parseInt): Throw NumberFormatException explicitly in the case of a null argument in keeping with JDK 1.3. 2001-11-16 Mark Wielaard * java/util/Timer.java (TaskQueue.isStopped): Remove method. (Scheduler.run): Try to re-schedule task and ignore exception if queue has been stopped. 2001-11-15 Tom Tromey * verify.cc (type::compatible): Use _Jv_IsAssignableFrom. (type::merge): Likewise. 2001-11-14 Hans Boehm * java/lang/natString.cc: correct argument order for _Jv_AllocPtrFreeObj 2001-11-14 Tom Tromey * verify.cc (class _Jv_BytecodeVerifier) [op_dup2]: Fixed logic. [op_dup_x2]: Likewise. [op_dup2_x1]: Likewise. [op_dup2_x2]: Likewise. (branch_prepass): Added `op_newarray' case. Updated unrecognized instruction error. (verify_instructions_0): Updated unrecognized instruction error. * java/lang/reflect/Constructor.java (toString): Use more efficient form of Modifier.toString(). Re-merges with Classpath, from various people: * java/lang/reflect/Modifier.java: Reindented. (toString): Only trim trailing space if text was added to StringBuffer. * java/lang/reflect/ReflectPermission: Reindented. Re-merges with Classpath, from various people: * java/lang/Double.java (parseDouble): Fixed ordering of modifiers. * java/lang/reflect/AccessibleObject.java: Javadoc, reindented. * java/lang/reflect/Member.java: Reindented. * java/util/ConcurrentModificationException.java: Javadoc updates. * java/util/EmptyStackException.java: Likewise. * java/util/NoSuchElementException.java: Likewise. 2001-11-13 Tom Tromey Fix for PR libgcj/4859: * java/util/Timer.java (TaskQueue.isStopped): New method. (Scheduler.run): Don't re-schedule task if queue has been stopped. 2001-11-07 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (ordinary_java_source_files): Added JNIWeakRef.java. * jni.cc: Include JNIWeakRef.h. (unwrap): New function. (_Jv_JNI_DefineClass): Use it. (_Jv_JNI_GetSuperclass): Likewise. (_Jv_JNI_IsAssignableFrom): Likewise. (_Jv_JNI_Throw): Likewise. (_Jv_JNI_ThrowNew): Likewise. (_Jv_JNI_IsSameObject): Likewise. (_Jv_JNI_AllocObject): Likewise. (_Jv_JNI_GetObjectClass): Likewise. (_Jv_JNI_IsInstanceOf): Likewise. (_Jv_JNI_GetAnyMethodID): Likewise. (array_from_valist): Likewise. (_Jv_JNI_CallAnyMethodV): Likewise. (_Jv_JNI_CallAnyMethodA): Likewise. (_Jv_JNI_CallAnyVoidMethodV): Likewise. (_Jv_JNI_CallAnyVoidMethodA): Likewise. (_Jv_JNI_CallStaticMethodV): Likewise. (_Jv_JNI_CallStaticMethod): Likewise. (_Jv_JNI_CallStaticMethodA): Likewise. (_Jv_JNI_NewObjectV): Likewise. (_Jv_JNI_NewObject): Likewise. (_Jv_JNI_NewObjectA): Likewise. (_Jv_JNI_GetField): Likewise. (_Jv_JNI_SetField): Likewise. (_Jv_JNI_GetAnyFieldID): Likewise. (_Jv_JNI_SetStaticField): Likewise. (_Jv_JNI_GetStringLength): Likewise. (_Jv_JNI_GetStringChars): Likewise. (_Jv_JNI_ReleaseStringChars): Likewise. (_Jv_JNI_GetStringUTFLength): Likewise (_Jv_JNI_GetStringUTFChars): Likewise. (_Jv_JNI_GetStringRegion): Likewise. (_Jv_JNI_GetStringUTFRegion): Likewise. (_Jv_JNI_GetStringCritical): Likewise. (_Jv_JNI_GetArrayLength): Likewise. (_Jv_JNI_NewObjectArray): Likewise. (_Jv_JNI_GetObjectArrayElement): Likewise. (_Jv_JNI_SetObjectArrayElement): Likewise. (_Jv_JNI_GetPrimitiveArrayElements): Likewise. (_Jv_JNI_ReleasePrimitiveArrayElements): Likewise. (_Jv_JNI_GetPrimitiveArrayRegion): Likewise. (_Jv_JNI_SetPrimitiveArrayRegion): Likewise. (_Jv_JNI_MonitorEnter): Likewise. (_Jv_JNI_MonitorExit): Likewise. (_Jv_JNI_ToReflectedField): Likewise. (_Jv_JNI_FromReflectedField): Likewise. (_Jv_JNI_ToReflectedMethod): Likewise. (_Jv_JNI_FromReflectedMethod): Likewise. (_Jv_JNI_NewGlobalRef): Likewise. (_Jv_JNI_DeleteGlobalRef): Likewise. (_Jv_JNI_DeleteLocalRef): Likewise. (_Jv_JNI_NewLocalRef): Likewise. (_Jv_JNI_NewWeakGlobalRef): New function. (_Jv_JNI_DeleteWeakGlobalRef): Likewise. (_Jv_JNIFunctions): Updated for new methods. (NOT_IMPL): Removed. * gnu/gcj/runtime/JNIWeakRef.java: New file. 2001-11-12 Bryce McKinlay * boehm.cc (_Jv_GCCanReclaimSoftReference): Fix warning. 2001-11-09 Jeff Sturm * verify.cc: Wrap in #ifdef INTERPRETER...#endif. 2001-11-07 Tom Tromey * verify.cc (skip_padding): Fail if padding byte is nonzero. 2001-11-06 Tom Tromey * HACKING: Make people commit their own patches. 2001-11-05 Tom Tromey * 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). 2001-11-05 Bryce McKinlay * java/util/ResourceBundle.java (class Security): Now static. 2001-11-04 Bryce McKinlay * java/util/ResourceBundle.java (getClassContext): Removed. (Security): New class, extends SecurityManger. (getBundle): Use Security.getCallingClassLoader instead of getClassContext. * java/util/natResourceBundle.cc: Removed. 2001-11-03 Tom Tromey * defineclass.cc (handleClassBegin): Use Object::class$, not Class::class$, when initializing interface superclass. 2001-11-02 Hans Boehm * java/util/natResourceBundle.cc:getClassContext: return array of Class instead of array of ClassLoader. 2001-10-31 Joseph S. Myers * HACKING, gnu/gcj/xlib/Pixmap.java, gnu/gcj/xlib/XException.java, gnu/java/rmi/rmic/RMIC.java, java/awt/Window.java, java/awt/AWTEvent.java, java/io/ByteArrayOutputStream.java, java/io/CharConversionException.java, java/io/PipedInputStream.java, java/io/PipedReader.java, java/io/PrintWriter.java, java/io/WriteAbortedException.java, java/io/natFileWin32.cc, java/lang/Class.h, java/lang/natClassLoader.cc, java/lang/natObject.cc, java/lang/Package.java, java/net/BindException.java, java/net/ConnectException.java, java/net/ProtocolException.java, java/net/SocketException.java, java/net/UnknownServiceException.java, java/security/cert/X509Certificate.java, java/security/interfaces/DSAKey.java, java/security/SecureRandom.java, java/security/SignedObject.java, java/sql/DatabaseMetaData.java, java/text/DecimalFormatSymbols.java, java/util/jar/Attributes.java, java/util/jar/JarEntry.java, java/util/jar/JarInputStream.java, java/util/jar/JarOutputStream.java, java/util/Calendar.java, java/util/Collections.java, java/util/GregorianCalendar.java, java/util/HashMap.java, java/util/List.java, java/util/Properties.java, java/util/Timer.java, java/util/Vector.java, java/util/WeakHashMap.java, javax/naming/NamingException.java, testsuite/libjava.lang/Thread_Wait.java, org/xml/sax/helpers/DefaultHandler.java, org/xml/sax/HandlerBase.java, org/xml/sax/SAXParseException.java, ChangeLog, acinclude.m4, aclocal.m4, posix-threads.cc: Fix spelling errors. * configure: Regenerate. 2001-10-30 Bryce McKinlay * jni.cc (JNI_CreateJavaVM): Call _Jv_CreateJavaVM. Don't call _Jv_JNI_Init. 2001-10-29 Tom Tromey * java/util/zip/GZIPOutputStream.java (write(int)): New method. Fixes PR libgcj/4728. 2001-10-27 Tom Tromey * include/jni.h (struct JNINativeInterface) [GetStringLength]: Returns jsize, not jint. 2001-10-26 Tom Tromey * java/util/zip/Adler32.java: Use correct class name. (Re-merge from Classpath.) 2001-10-25 Bryce McKinlay * java/lang/VMClassLoader.java (getPrimitiveClass): Now native. Now takes a jchar type-code argument, not a string. * java/lang/natClassLoader.cc (VMClassLoader::getPrimitiveClass): New method. Just call _Jv_FindClassFromSignature. * java/lang/Boolean.java (TYPE): Initialize from VMClassLoader.getPrimitiveClass using type-code. * java/lang/Character.java (TYPE): Likewise. * java/lang/Double.java (TYPE): Likewise. * java/lang/Float.java (TYPE): Likewise. * java/lang/Integer.java (TYPE): Likewise. * java/lang/Long.java (TYPE): Likewise. * java/lang/Short.java (TYPE): Likewise. * java/lang/Void.java (TYPE): Likewise. 2001-10-25 Hans Boehm * include/boehm-gc.h: Call thread local allocation functions if THREAD_LOCAL_ALLOC is defined. 2001-10-25 Bryce McKinlay * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Use snprintf, not asprintf. 2001-10-24 Loren J. Rittle * configure.in (case $THREADS): Add *-*-freebsd* configuration. (HAVE_GETHOSTBYADDR_R): Create a valid, non-optimal configuration when gethostbyaddr_r exists yet no prototype exists in netdb.h. * configure: Rebuilt. * posix-threads.cc (INTR): Reuse path for LINUX_THREADS with FREEBSD_THREADS. However, comment different reason. 2001-10-24 Tom Tromey Warren Levy * Makefile.in: Rebuilt. * Makefile.am (javax_source_files): New macro. (ordinary_java_source_files): Added javax_source_files. (libgcj.jar): Search javax for class files. * javax/naming/LinkException.java (toString): Wrote. (toString(boolean)): Likewise. * javax/naming/ldap/InitialLdapContext.java: New file. * javax/naming/directory/InitialDirContext.java: Wrote. * javax/naming/spi/NamingManager.java (getPlusPath): Now has package-private protection. (getURLContext): Likewise. (NamingManager): Likewise. * javax/naming/spi/DirectoryManager.java: New file. * javax/naming/directory/BasicAttributes.java: New file. * javax/naming/directory/BasicAttribute.java: New file. * javax/naming/spi/ResolveResult.java (ResolveResult(Object,String)): Wrote. (appendRemainingName): Uncommented body. (appendRemainingComponent): Likewise. * javax/naming/ldap/ControlFactory.java: New file. * javax/naming/directory/AttributeModificationException.java (toString): Wrote. * javax/naming/spi/NamingManager.java (NamingManager): New constructor. (setInitialContextFactoryBuilder): Wrote. (getInitialContext): Look in system properties for class name as well. Use Class.forName(). (getURLContext): Wrote. (ofb): New field. (setObjectFactoryBuilder): Wrote. (getObjectInstance): Wrote. (getContinuationContext): Wrote. (getPlusPath): New private method. (getStateToBind): Wrote. * javax/naming/CannotProceedException.java: Added missing methods & fields. * javax/naming/LinkException.java: Added missing methods & fields. * javax/naming/ReferralException.java (ReferralException): Made constructor protected per spec. Added missing abstract methods. * javax/naming/directory/Attribute.java: Updated copyright. * javax/naming/directory/AttributeModificationException.java: Ditto. * javax/naming/directory/Attributes.java: Ditto. * javax/naming/directory/DirContext.java: Ditto. * javax/naming/spi/NamingManager.java: Ditto. * javax/naming/spi/ResolveResult.java: Added comment. * javax/naming/directory/Attribute.java: Added missing interface methods. * javax/naming/directory/AttributeModificationException.java: Added missing methods & fields. * javax/naming/directory/directory/Attributes.java: Added missing interface methods. * javax/naming/directory/SearchControls.java: Maded serialized fields private. * javax/naming/event/NamingEvent.java: Added comment. * javax/naming/event/NamingExceptionEvent.java: Maded serialized field private. * javax/naming/ldap/UnsolicitedNotificationEvent.java: Maded serialized field private. * javax/naming/spi/NamingManager.java: Added missing field and stubbed missing methods. * javax/naming/directory/DirContext.java: Added missing interface fields & methods. * javax/naming/directory/InitialDirContext.java: Stubbed missing methods. * javax/naming/directory/ModificationItem.java: New class. * javax/naming/directory/SearchResult.java: New class. * javax/naming/directory/SearchControls.java: New class. * javax/naming/event/EventContext.java: New class. * javax/naming/event/EventDirContext.java: New class. * javax/naming/event/NamespaceChangeListener.java: New class. * javax/naming/event/NamingEvent.java: New class. * javax/naming/event/NamingExceptionEvent.java: New class. * javax/naming/event/NamingListener.java: New class. * javax/naming/event/ObjectChangeListener.java: New class. * javax/naming/ldap/Control.java: New class. * javax/naming/ldap/ExtendedRequest.java: New class. * javax/naming/ldap/ExtendedResponse.java: New class. * javax/naming/ldap/HasControls.java: New class. * javax/naming/ldap/LdapContext.java: New class. * javax/naming/ldap/LdapReferralException.java: New class. * javax/naming/ldap/UnsolicitedNotification.java: New class. * javax/naming/ldap/UnsolicitedNotificationEvent.java: New class. * javax/naming/ldap/UnsolicitedNotificationListener.java: New class. * javax/naming/spi/DirObjectFactory.java: New class. * javax/naming/spi/DirStateFactory.java: New class. * javax/naming/spi/ObjectFactoryBuilder.java: New class. * javax/naming/spi/ResolveResult.java: New class. * javax/naming/spi/Resolver.java: New class. * javax/naming/spi/StateFactory.java: New class. * javax/naming/spi/ObjectFactory.java: Made an interface per spec. * java/rmi/RemoteException.java: New class. * javax/transaction/HeuristicCommitException.java: New class. * javax/transaction/HeuristicMixedException.java: New class. * javax/transaction/HeuristicRollbackException.java: New class. * javax/transaction/NotSupportedException.java: New class. * javax/transaction/RollbackException.java: New class. * javax/transaction/Status.java: New class. * javax/transaction/Synchronization.java: New class. * javax/transaction/SystemException.java: New class. * javax/transaction/Transaction.java: New class. * javax/transaction/TransactionManager.java: New class. * javax/transaction/UserTransaction.java: New class. * javax/transaction/xa/XAException.java: Added public static fields. * javax/transaction/xa/XAResource.java: New class. * javax/transaction/xa/Xid.java: New class. * javax/naming/CompoundName.java (CompoundName(String)): Reverse elements if required. Handle case where quote is at end of string. * javax/naming/CompoundName.java (CompoundName(String)): Handle text left at end of parsing. (toString): Handle empty element at beginning. * javax/naming/CompositeName.java (toString): Handle empty element at beginning. (CompositeName(String)): Handle text left at end of parsing. Correctly compute boundary condition for quoting. * javax/naming/CompoundName.java: New file. * javax/naming/CompositeName.java: New file. * javax/naming/Binding.java: New file. * javax/naming/LinkRef.java: New file. * javax/naming/NameClassPair.java: New file. * javax/naming/Reference.java (addrs, classFactory, classFactoryLocation): New fields. (className): Now protected. (Reference): New constructors. (add): Now public. Implemented. (get(String)): Likewise. (add(int,RefAddr)): New method. (clear): Likewise. (clone): Likewise. (equals): Likewise. (get(int)): Likewise. (getAll): Likewise. (getFactoryClassLocation): Likewise. (getFactoryClassName): Likewise. (hashCode): Likewise. (remove): Likewise. (size): Likewise. (toString): Likewise. * javax/transaction/xa/XAException.java: New file. * javax/transaction/TransactionRolledbackException.java: New file. * javax/transaction/TransactionRequiredException.java: New file. * javax/transaction/InvalidTransactionException.java: New file. * javax/naming/directory/SchemaViolationException.java: Use correct package. Import NamingException. * javax/naming/directory/NoSuchAttributeException.java, javax/naming/directory/InvalidSearchFilterException.java, javax/naming/directory/InvalidSearchControlsException.java, javax/naming/directory/InvalidAttributesException.java, javax/naming/directory/InvalidAttributeValueException.java, javax/naming/directory/InvalidAttributeIdentifierException.java, javax/naming/directory/AttributeModificationException.java, javax/naming/directory/AttributeInUseException.java: Likewise. * javax/naming/directory/InitialDirContext.java (getAttributes): Stub implementation. * javax/naming/RefAddr.java (RefAddr): Reindented. (equals): Renamed and reindented. * javax/naming/BinaryRefAddr.java (equals): Renamed and reindented. 2001-10-24 Tom Tromey * java/lang/reflect/Field.java: Made many methods private. * java/sql/Types.java (Types): New constructor. Tue Oct 23 23:52:18 2001 Anthony Green * gnu/gcj/runtime/natSharedLibLoader.cc: Only include dlfcn.h when HAVE_DLOPEN. 2001-10-23 Tom Tromey * java/lang/reflect/Field.java (Field): New constructor. * java/lang/ClassLoader.java (defineClass(String,byte[],int,int)): Throw ClassFormatError. 2001-10-23 Tom Tromey * java/util/PropertyResourceBundle.java (handleGetObject): Now public. * java/util/ListResourceBundle.java (handleGetObject): Now public and final, per spec. * java/io/BufferedWriter.java (localFlush): Don't synchronize. 2001-10-23 Bryce McKinlay * prims.cc (_Jv_Abort): Always print error message using fprintf, don't try to allocate. (_Jv_CreateJavaVM): Set gcj::runtimeInitialized. * include/jvm.h (gcj::runtimeInitialized): New variable declaration. * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Handle duplicate class registration with JvFail if the runtime hasn't been initialized yet. * java/io/BufferedWriter (write (String, int, int)): Remove redundant bounds checks. (write (char[], int, int)): Likewise. 2001-10-22 Tom Tromey * java/util/GregorianCalendar.java (getGregorianChange): Removed `date' argument. 2001-10-22 Bryce McKinlay * gnu/gcj/convert/JIS0208_to_Unicode.cc: Declare java_exceptions pragma. * gnu/gcj/convert/JIS0212_to_Unicode.cc: Likewise. * gnu/gcj/convert/Unicode_to_JIS.cc: Likewise. * gnu/gcj/convert/gen-from-JIS.c: Put java_exceptions pragma in output file. 2001-10-19 Mark Wielaard * java/lang/Double.java: More Classpath merging (isInfinite): Don't use doubleToLongBits (isNaN (Object)): return v != v (initIDs): make native * java/lang/Float.java: Ditto (isInfinite): Don't use floatToIntBits (isNaN (Object)): return v != v * java/lang/natDouble.cc: add empty initIDs() 2001-10-19 Mark Wielaard * javax/naming/BinaryRefAddr.java: New file * javax/naming/InitialContext.java: Compile fix * javax/naming/InvalidNameException.java: Add comments * javax/naming/Name.java: Ditto * javax/naming/NamingException.java: Implement * javax/naming/OperationNotSupportedException.java: Compile fix * javax/naming/RefAddr.java: Implement * javax/naming/StringRefAddr.java: Add comments and implement * javax/naming/directory/InitialDirContext.java: Compile fix 2001-10-18 Tom Tromey * java/io/BufferedWriter.java (write(String,int,int)): Correctly check bounds. * java/security/Security.java (loadProviders): Removed unused `pname' variable. Don't create `File' object. Don't update `providerCount'. (providerCount): Removed. (insertProviderAt): Don't use `providerCount'. (addProvider(Provider,int)): Likewise. (removeProvider): Likewise. (addProvider(Provider)): Rewrote. (getProviders): Rewrote. (getProvider): Don't use `providerCount'. 2001-10-17 Tom Tromey * gnu/java/security/provider/SHA1PRNG.java (engineNextBytes): Rewrote. * java/security/SecureRandom.java (setSeed(long)): Don't set seed if secureRandomSpi is not initialized. * Makefile.in: Rebuilt. * Makefile.am (secdir): New macro. (install-data-local): Install new data files. * java/security/classpath.security: New file. * java/security/libgcj.security: New file. * java/security/Security.java (loadProviders): Added `vendor' argument. Load both `classpath' and `java.vm.name' providers. 2001-10-17 Anthony Green * java/security/Security.java (loadProviders): Fix bug in how providers are loaded. 2001-10-16 Tom Tromey * gcj/javaprims.h: Updated class list. * java/util/Hashtable.java: Re-merged with Classpath. 2001-10-16 Bryce McKinlay * name-finder.cc (_Jv_name_finder::lookup): Check for NULL dli_sname. Eliminate use of C++ static constructors. * interpret.cc: Remove static Utf8Consts. Use namespace gcj. * jni.cc: Likewise. * resolve.cc: Likewise. * defineclass.cc: Likewise. (_Jv_ClassReader::handleClassBegin): Synchronize call to _Jv_RegisterClass. * include/jvm.h (void_signature, clinit_name, init_name, finit_name): Declare in namespace gcj. * java/lang/Class.h (Class): Remove initialization for primitive types. (friend void _Jv_InitPrimClass): This is in prims.cc. * prims.cc (_Jv_InitPrimClass): Do primitive type initialization here instead. (void_signature, clinit_name, init_name, finit_name): Define in namespace gcj. (_Jv_CreateJavaVM): Call _Jv_InitThreads, _Jv_InitGC, and _Jv_InitializeSyncMutex from here. Initialize Utf8 constants. Initialize primitive types. * java/lang/natClassLoader.cc (_Jv_RegisterClasses): Don't call initialization routines. Don't synchronize. * java/lang/natRuntime.cc (_load): Synchronize on java.lang.Class across dlopen call. 2001-10-15 Bryce McKinlay * java/util/HashMap.java (HashEntry.clone): Removed. (HashMap(Map)): Use putAllInternal. (clone): Likewise. (putAllInternal): New method. Efficient counterpart to putAll which does not call put(). * java/util/LinkedHashMap.java (rethread): Removed. (putAllInternal): New method. Clear "head" and "tail". (addEntry): New argument "callRemove". Don't call removeEldestEntry() if callRemove == false. * Makefile.am: Add new classes RandomAccess and LinkedHashMap. * Makefile.in: Rebuilt. 2001-10-15 Eric Blake * java/util/Collection.java: Updated javadoc. * java/util/Comparator.java: Updated javadoc. * java/util/Enumeration.java: Updated javadoc. * java/util/Iterator.java: Updated javadoc. * java/util/List.java: Updated javadoc. * java/util/ListIterator.java: Updated javadoc. * java/util/Map.java: Updated javadoc. * java/util/RandomAccess.java: New file. * java/util/Set.java: Updated javadoc. * java/util/SortedMap.java: Updated javadoc. * java/util/SortedSet.java: Updated javadoc. 2001-10-15 Tom Tromey * java/lang/reflect/AccessibleObject.java (checkPermission): Implemented. Updated copyright information. 2001-10-15 Hans Boehm * java/lang/natObject.cc (heavy_lock): Moved fields old_client_data, old_finalization_proc near beginning. (heavy_lock_finalization_proc): Now inline; changed type of argument. (JV_SYNC_TABLE_SZ): Now 2048. (mp): New global. (spin): `mp' now global. (heavy_lock_obj_finalization_proc): Updated to correctly handle heavy lock finalization. (remove_all_heavy): New function. (maybe_remove_all_heavy): Likewise. (_Jv_MonitorEnter): Throw exception if object is NULL. (_Jv_MonitorExit): Likewise. Also, clear long lists of unlocked heavy locks. * include/jvm.h (_Jv_AllocTraceTwo): Declare. * nogc.cc (_Jv_AllocTraceTwo): New function. * boehm.cc (trace_two_vtable): New global. (_Jv_AllocTraceTwo): New function. 2001-10-15 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (awt_java_source_files): Added new file. * java/beans/AppletInitializer.java: New file. * java/net/SocketPermission.java (hostport, actions): Now private. 2001-10-14 Mark Wielaard * java/lang/Double.java: Partial merge with Classpath (TYPE): initialized through VMClassLoader.getPrimitiveClass() (value): made final (static): new static block to load native libary (not used in libgcj) (Double (String)): call parseDouble() (byteValue): removed, already defined in superclass Number (shortValue): likewise (valueOf (String)): call new Double(String) directly (compare (double,double)): new 1.4 method (compareTo (Double)): call new compare(double,double) method (initIDs): new private method (not used in libgcj) * java/lang/Float.java: Partial merge with Classpath (TYPE): initialized through VMClassLoader.getPrimitiveClass() (value): made final (static): new static block to load native libary (not used in libgcj) (Float (String)): call parseFloat() (byteValue): removed, already defined in superclass Number (shortValue): likewise (valueOf (String)): call new Float(String) directly (compare (float,float)): new 1.4 method (compareTo (Float)): call new compare(double,double) method 2001-10-13 Tom Tromey * java/lang/SecurityManager.java (SecurityManager): Now public. * java/security/AccessController.java (checkPermission): Now throws AccessControlException. * java/security/AllPermission.java: Class now final. * java/security/Permission.java (getName): Now final. (name): Now private. (equals): New abstract method. * java/security/PermissionCollection.java (linesep): Now private. * java/security/Permissions.java: Class now final. * java/security/Security.java (Security): New private constructor. * java/security/UnresolvedPermission.java: Import java.security.cert.Certificate. Class now final. * java/security/acl/Group.java: Now extends Principal. (isMember): Added Principal argument. * java/security/spec/X509EncodedKeySpec.java (getFormat): Now final. * java/security/spec/PKCS8EncodedKeySpec.java (getFormat): Now final. 2001-10-12 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (rmi_java_source_files): Added new files. * gnu/java/rmi/rmic/RMIC.java (compile): Uncommented; fixed to use new Compiler class. * gnu/java/rmi/rmic/Makefile.am (EXTRA_DIST): Updated. * gnu/java/rmi/rmic/Compile_gcj.java: New file. * gnu/java/rmi/rmic/CompilerProcess.java: New file. * gnu/java/rmi/rmic/Compiler.java: New file. 2001-10-11 Tom Tromey * configure: Rebuilt. * configure.in: Recognize --disable-java-awt. 2001-10-10 Tom Tromey * gnu/gcj/runtime/natFinalizerThread.cc: New file. * java/lang/natRuntime.cc: Include FinalizerThread.h. (runFinalization): Call finalizerReady. * nogc.cc (_Jv_GCInitializeFinalizers): New function. * prims.cc: Include VirtualMachineError.h, FinalizerThread.h. (_Jv_CreateJavaVM): Start the finalizer thread. * no-threads.cc: Include InternalError.h. (_Jv_ThreadStart): Throw InternalError. (_Jv_ThreadInitData): Don't throw error if this is not the first thread. * Makefile.in: Rebuilt. * Makefile.am (ordinary_java_source_files): Added FinalizerThread.java. (nat_source_files): Added natFinalizerThread.cc. * include/jvm.h (_Jv_GCInitializeFinalizers): Declare. * boehm.cc (_Jv_GCInitializeFinalizers): New function. * gnu/gcj/runtime/FirstThread.java (run): Start finalizer thread. * gnu/gcj/runtime/FinalizerThread.java: New file. 2001-10-09 Per Bothner * strtod.c (_strtod_r): Logic to check for missing digits after exponent had 'else' attached to wrong 'if'. 2001-10-09 Mark Wielaard * java/net/SocketImpl.java: Merge with Classpath 2001-10-08 Mark Wielaard * java/net/DatagramSocketImpl.java: Merge with Classpath 2001-10-07 Mark Wielaard * java/net/URLDecoder.java: Remerge with Classpath * java/net/URLEncoder.java: Merge with Classpath 2001-10-08 Tom Tromey Fix for PR libgcj/4481: * java/io/File.java (getParent): Handle case where path is "/". (normalizePath): Use correct string for UNC leader. 2001-10-06 Mark Wielaard * java/io/BufferedInputStream.java: Merge with Classpath 2001-10-07 Joseph S. Myers * defineclass.cc, java/awt/image/ColorModel.java, java/awt/image/SampleModel.java, java/lang/Package.java, java/security/cert/X509Extension.java: Fix spelling errors of "separate" as "seperate", and corresponding spelling errors of related words. 2001-10-05 Tom Tromey * java/text/DecimalFormat.java (format): Use localized minus sign when generating exponent; never use `+'. Use floor to compute exponent. 2001-10-05 Mark Wielaard * java/util/zip/Adler32.java: Merge with Classpath * java/util/zip/CRC32.java: Ditto * java/util/zip/Checksum.java: Ditto * java/util/zip/DataFormatException.java: Ditto * java/util/zip/ZipException.java: Ditto 2001-10-04 Martin Kahlert * jni.cc (_Jv_JNI_DeleteLocalRef): Use correct frame size 2001-10-04 Mark Wielaard * java/lang/reflect/Modifier.java: Merge with Classpath 2001-10-03 Mark Wielaard * java/io/SequenceInputStream.java: Merge with Classpath * java/io/StringBufferInputStream.java: Ditto * java/util/Collections.java: Remerge with Classpath 2001-10-03 Tom Tromey * java/lang/ref/natReference.cc (add_to_hash): Set n->next before setting *link. 2001-10-03 Bryce McKinlay * resolve.cc (_Jv_PrepareClass): Fix typos in vtable layout. * gij.cc (version): Use GCJVERSION. 2001-10-02 Mark Wielaard * Makefile.am (core_java_source_files): add InheritableThreadLocal * Makefile.in: regenerate * gcj/javaprims.h: ditto * java/lang/InheritableThreadLocal.java: new class from Classpath * java/lang/Thread.java Thread (Thread, ThreadGroup, Runnable, String): call InheritableThreadLocal.newChildThread() 2001-10-01 Mark Wielaard * Makefile.am: Add new classes (core_java_source_files): CharSequence (ordinary_java_source_files): Authenticator, PasswordAuthentication * Makefile.in: regenerate * gcj/javaprims.h: ditto * java/lang/CharSequence: new class from Classpath * java/lang/String.java: implements CharSequence (subSequence (int,int)): new method * java/lang/SubString.java: implements CharSequence (subSequence (int,int)): new method remerge comments with Classpath * java/net/Authenticator.java: new class from Classpath * java/net/PasswordAuthentication.java: ditto 2001-10-01 Tom Tromey * gcj/javaprims.h: Rebuilt class list. * boehm.cc (_Jv_GCRegisterDisappearingLink): New function. (_Jv_GCCanReclaimSoftReference): New function. * include/jvm.h (_Jv_GCRegisterDisappearingLink): Declare. (_Jv_GCCanReclaimSoftReference): Declare. * java/lang/ref/Reference.java (referent): Now a RawData. (create): Renamed from `created'. Added object argument. (Reference): Don't initialize `referent' here. * Makefile.in: Rebuilt. * Makefile.am (nat_source_files): Added new file. * java/lang/ref/natReference.cc: New file. * prims.cc (_Jv_NewMultiArrayUnchecked): New method. (_Jv_NewMultiArray): Use it. Check each array dimension. (_Jv_NewMultiArray): Likewise. * java/lang/reflect/natMethod.cc (can_widen): Nothing promotes to `char'. * java/lang/reflect/natArray.cc (newInstance): Throw IllegalArgumentException if there are no dimensions. 2001-10-01 Mark Wielaard * java/io/FileWriter.java: Merge with Classpath. * java/io/FilterInputStream.java: Ditto. (mark): no longer synchronized (reset): Likewise * java/io/FilterOutputStream.java: Merge with Classpath. * java/io/FilterReader.java: Ditto. (mark): no longer synchronized (reset): Likewise * java/io/FilterWriter.java: Merge with Classpath. * java/io/Writer.java: Ditto. * java/lang/Compiler.java: Ditto. * java/lang/Process.java: Ditto. * java/lang/Void.java: Ditto. * java/net/ContentHandler.java: Ditto. * java/net/DatagramPacket.java: Ditto. * java/net/MulticastSocket.java: Merge comments with Classpath. 2001-09-30 Mark Wielaard * java/io/DataInput.java: Merge with Classpath. * java/io/DataOutput.java: Idem. * java/io/FilenameFilter.java: Idem. * java/io/Serializable.java: Idem. * java/lang/Cloneable.java: Idem. * java/lang/Comparable.java: Idem. * java/lang/Runnable.java: Idem. * java/lang/reflect/Member.java: Idem. * java/net/ContentHandlerFactory.java: Idem. * java/net/FileNameMap.java: Idem. * java/net/SocketImplFactory.java: Idem. * java/net/SocketOptions.java: Idem. * java/net/URLStreamHandlerFactory.java: Idem. 2001-09-30 Bryce McKinlay * java/lang/natClass.cc (_Jv_IsAssignableFrom): Handle the case of an uninitialized target class. * gnu/gcj/protocol/file/Connection.java (connect): Throw FileNotFoundException if appropriate. * gnu/gcj/protocol/file/Handler.java (openConnection): Throw an IOException if we got a file: url with a hostname. Comment out protocol switch to ftp for now. * java/net/URL.java (URL): Include protocol name in exception message when handler can't be found. 2001-09-28 Per Bothner * gnu/gcj/runtime/SharedLibLoader.java: New class. * gnu/gcj/runtime/natSharedLibLoader.cc: Native methods. * Makefile.am: Update accordingly. * configure.in: Add AC_CHECK_LIB for dlopen. * include/config.h.in: Add HAVE_DLOPEN. 2001-09-29 Jeff Sturm * Makefile.am (libgcj_la_LDFLAGS): Added $(GCLIBS), $(ZLIBS). * Makefile.in: Rebuilt. 2001-09-27 Tom Tromey * java/util/IdentityHashMap.java (containsKey): Use getHash. (get): Likewise. (put): Likewise. (remove): Likewise. (getHash): New method. (tombstone, emptyslot): Now static final. (put): Correctly determine when to rehash, and correctly rehash. (containsKey, remove): Test against table length with `>='. 2001-09-26 Tom Tromey * gnu/classpath/Configuration.java.in (INIT_LOAD_LIBRARY): New constant. * java/io/StreamTokenizer.java, java/util/ResourceBundle.java: Re-merged with Classpath. * java/io/DataInputStream.java (readChar): Use readFully. (readInt): Likewise. (readLong): Likewise. (readShort): Likewise. (readUnsignedShort): Likewise. 2001-09-24 Bryce McKinlay * java/lang/PosixProcess.java (exitValue): Implement here. Throw IllegalThreadStateException if process hasn't exited yet. * java/lang/natPosixProcess.cc (exitValue): Removed. (waitFor): Only check thread interrupted status if waitpid() returned an error. Use WIFEXITED and WEXITSTATUS to process process's exit value. * java/security/cert/X509Extension.java: Merge from classpath. 2001-09-22 Anthony Green * java/security/DummyKeyPairGenerator.java (initialize): New method (with AlgorithmParameterSpec argument). 2001-09-22 Anthony Green * java/security/spec/EncodedKeySpec.java: Implements KeySpec. * gnu/java/security/provider/SHA1PRNG.java: Extend from SecureRandomSpi. (engineNextBytes): Fix order of memory copies. 2001-09-21 Richard Henderson * 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. 2001-09-21 Richard Henderson * no-threads.cc (_Jv_ThreadStart): Remove names of unused arguments. * java/lang/mprec.c (lo0bits): Fix paren typo. 2001-09-20 Bryce McKinlay * posix-threads.cc (_Jv_ThreadInterrupt): Re-enable interrupt of blocking IO via pthread_kill(). * java/io/natFileDescriptorPosix.cc (write (jint)): Check for thread interrupted status flag only if ::write returned an error. (write (jbyteArray, jint, jint): Likewise. (read (jint)): Likewise. (read (jbyteArray, jint, jint): Likewise. 2001-09-19 Anthony Green * gnu/gcj/protocol/file/Handler.java: Avoid NullPointerException when host is null. 2001-09-17 Andreas Jaeger * jni.cc (array_from_valist): Use promoted types for va_arg. 2001-09-16 Anthony Green * gnu/java/locale/LocaleInformation.java: Extend LocaleInformation_en_US, not LocaleInformation_en. 2001-09-16 Anthony Green * gnu/gcj/convert/IOConverter.java: Add support for iso8859_1. 2001-09-14 Tom Tromey * java/util/TimeZone.java: Updated list of timezones from Classpath. * java/lang/CloneNotSupportedException.java: Re-merged with Classpath. 2001-09-14 Bryce McKinlay * java/io/File.java (normalizePath): Use equals() not '==' for string comparison. * java/util/Hashtable.java (Enumerator): Ensure that if hasMoreElements() returns true, nextElement() will always return something even if the table has been modified. 2001-09-12 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (class-check): New target. 2001-09-11 Tom Tromey * java/io/File.java (toURL): Use getAbsolutePath and `file://'. 2001-09-10 Tom Tromey * java/util/Properties.java (load): Correctly read \u sequences. Report from Anthony Green. 2001-09-10 Manfred Hollstein * configure.in (LIBFFIINCS): Quote uses of $(top_srcdir) and $(MULTIBUILDTOP). * configure: Re-generate. 2001-09-10 Bryce McKinlay * include/jvm.h (_Jv_AllocRawObj): New prototype. * boehm.cc (_Jv_AllocRawObj): Implement. * nogc.cc (_Jv_AllocRawObj): Likewise. * exception.cc (_Jv_Throw): Use _Jv_AllocRawObj, not GC_malloc. 2001-09-06 Anthony Green * java/util/ResourceBundle.java (tryLocalBundle): Eliminate redundant method calls. (emptyLocale): New private member. (tryBundle): Use emptyLocale. Remove duplicate code. Only cache exact matches. 2001-09-06 Tom Tromey * java/text/RuleBasedCollator.java (clone): Rewrote. (RuleBasedCollator(RuleBasedCollator)): Removed. * java/text/MessageFormat.java: Re-merged from Classpath. * java/text/DecimalFormat.java: Re-merged from Classpath. 2001-09-06 Anthony Green * include/jvm.h: Declare _Jv_RegisterResource. * gnu/gcj/Core.java, gnu/gcj/natCore.cc, gnu/gcj/protocol/core/Connection.java, gnu/gcj/protocol/core/Handler.java, gnu/gcj/protocol/core/CoreInputStream.java, gnu/gcj/protocol/core/natCoreInputStream.cc: New files. * java/net/URL.java (setURLStreamHandler): Use gnu.gcj.protocol.core.Handler for the core protocol. * gnu/gcj/runtime/VMClassLoader.java (init): Add "core:/" to the end of java.class.path. * Makefile.am (ordinary_java_source_files): Add new java files. (nat_source_files): Add new native code files. * Makefile.in: Rebuilt. 2001-09-05 Tom Tromey * java/util/Properties.java: Re-merged from Classpath. From Eric Blake, via Classpath: * java/lang/String.java (CaseInsensitiveComparator): New class. (CASE_INSENSITIVE_ORDER): Use instance of CaseInsensitiveComparator. * java/util/Date.java: Re-merged with Classpath. * java/text/DateFormatSymbols.java: Re-merged with Classpath. 2001-09-05 Corey Minyard Tom Tromey * java/lang/natClassLoader.cc: Include VirtualMachineError.h (_Jv_RegisterClassHookDefault): Throw error if a class is registered twice. 2001-09-05 Tom Tromey * java/lang/natSystem.cc (init_properties): Default locale is en_US, not just en. 2001-09-05 Bryce McKinlay * java/text/MessageFormat.java (setLocale): Don't catch ParseException here, DecimalFormat.applyPattern() does not throw it. 2001-09-04 Tom Tromey * java/util/AbstractMap.java: Re-merged with Classpath. * java/util/IdentityHashMap.java: Re-merged with Classpath. * java/text/SimpleDateFormat.java: Re-merged with Classpath. * gnu/gcj/text/LocaleData.java, gnu/gcj/text/LocaleData_en.java, gnu/gcj/text/LocaleData_en_US.java: Removed. * java/text/DateFormatSymbols.java (clone): Use Classpath implementation. (equals): Simplified. (DateFormatSymbols): Look in gnu.java.locale for information. (DateFormatSymbols(DateFormatSymbols)): Removed. (safeGetResource): Removed. (DateFormatSymbols): Throws MissingResourceException. (ampmsDefault, erasDefault, localPatternCharsDefault, monthsDefault, shortMonthsDefault, shortWeekdaysDefault, weekdaysDefault, zoneStringsDefault): Removed. * java/text/Collator.java (getAvailableLocales): Use modified Classpath implementation. (getInstance): Look in gnu.java.locale for information. (clone): Rewrote. * java/text/MessageFormat.java: Reindented. (clone): Rewrote. * java/text/FieldPosition.java: Merged with Classpath. * java/text/ParsePosition.java: Merged with Classpath. * java/text/Format.java: Merged with Classpath. * java/text/StringCharacterIterator.java (StringCharacterIterator(StringCharacterIterator,int,int)): New constructor from Classpath. * java/text/Annotation.java, java/text/AttributedCharacterIterator.java, java/text/AttributedString.java, java/text/AttributedStringIterator.java: New from Classpath. * java/text/CharacterIterator.java: Copied from Classpath. * java/text/ChoiceFormat.java: Reindented. (clone): Removed. * gnu/java/text/BaseBreakIterator.java, gnu/java/text/CharacterBreakIterator.java, gnu/java/text/LineBreakIterator.java, gnu/java/text/LocaleData_en.java, gnu/java/text/LocaleData_en_US.java, gnu/java/text/SentenceBreakIterator.java, gnu/java/text/WordBreakIterator.java: Renamed from gnu/gcj/text/*. * gnu/gcj/text/BaseBreakIterator.java (last): Advance past final character. * java/text/BreakIterator.java (getAvailableLocales): Use Classpath implementation. (getInstance): Look in gnu.java.locale for information. (getCharacterInstance, getLineInstance, getSentenceInstance, getWordInstance): Look in gnu.java.text for implementations. * java/text/DecimalFormatSymbols.java: Reindented (clone): Use Classpath implementation. (DecimalFormatSymbols(DecimalFormatSymbols)): Removed. (DecimalFormatSymbols(Locale)): Look in gnu.java.locale for information. * java/text/DateFormat.java: Merged with Classpath. (getAvailableLocales): Use Classpath implementation. (format(Object,StringBuffer,FieldPosition)): Minor cleanup. (computeInstance): Look in gnu.java.locale for information. * java/text/NumberFormat.java: Reindented. (computeInstance): Look in gnu.java.locale for information. (getAvailableLocales): Use implementation from Classpath. (setMaximumIntegerDigits): Likewise. (setMinimumIntegerDigits): Likewise. (setMaximumFractionDigits): Likewise. (clone): Removed. * java/text/DecimalFormat.java: Reindented. * gnu/java/locale/LocaleInformation_en.java: Copied from Classpath. * gnu/java/locale/LocaleInformation_en_US.java: Copied from Classpath. * Makefile.in: Rebuilt. * Makefile.am (ordinary_java_source_files): Added all new files. (ordinary_java_source_files): Renamed or removed gnu/gcj/text/*. * java/security/spec/AlgorithmParameterSpec.java, java/security/spec/KeySpec.java: Re-merged with Classpath. Fix for PR libgcj/4213: * Makefile.am (ordinary_java_source_files): Added new file. * gnu/gcj/text/LocaleData.java: New file. 2001-09-03 Tom Tromey * java/lang/reflect/natField.cc (set): Allow for case when the value is null. Fixes PR libgcj/4208. * gcj/javaprims.h: Regenerated class list. * java/lang/IllegalThreadStateException.java, java/lang/InstantiationException.java: Minor comment tweaks to satisfy libgcj `classes.pl' script. 2001-09-01 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (core_java_source_files): Added UnsupportedClassVersionError. * java/lang/UnsupportedClassVersionError.java: New file from Classpath. * java/io/CharConversionException.java, java/io/EOFException.java, java/io/FileNotFoundException.java, java/io/IOException.java, java/io/InterruptedIOException.java, java/io/ObjectStreamException.java, java/io/OptionalDataException.java, java/io/StreamCorruptedException.java, java/io/SyncFailedException.java, java/io/UTFDataFormatException.java, java/io/UnsupportedEncodingException.java, java/lang/AbstractMethodError.java, java/lang/ArithmeticException.java, java/lang/ArrayIndexOutOfBoundsException.java, java/lang/ArrayStoreException.java, java/lang/ClassCastException.java, java/lang/ClassCircularityError.java, java/lang/ClassFormatError.java, java/lang/CloneNotSupportedException.java, java/lang/Error.java, java/lang/Exception.java, java/lang/ExceptionInInitializerError.java, java/lang/IllegalAccessError.java, java/lang/IllegalAccessException.java, java/lang/IllegalArgumentException.java, java/lang/IllegalMonitorStateException.java, java/lang/IllegalStateException.java, java/lang/IllegalThreadStateException.java, java/lang/IncompatibleClassChangeError.java, java/lang/IndexOutOfBoundsException.java, java/lang/InstantiationError.java, java/lang/InstantiationException.java, java/lang/InternalError.java, java/lang/InterruptedException.java, java/lang/LinkageError.java, java/lang/NegativeArraySizeException.java, java/lang/NoClassDefFoundError.java, java/lang/NoSuchFieldError.java, java/lang/NoSuchFieldException.java, java/lang/NoSuchMethodError.java, java/lang/NoSuchMethodException.java, java/lang/NullPointerException.java, java/lang/NumberFormatException.java, java/lang/OutOfMemoryError.java, java/lang/RuntimeException.java, java/lang/SecurityException.java, java/lang/StackOverflowError.java, java/lang/StringIndexOutOfBoundsException.java, java/lang/ThreadDeath.java, java/lang/UnknownError.java, java/lang/UnsatisfiedLinkError.java, java/lang/UnsupportedOperationException.java, java/lang/VerifyError.java, java/lang/VirtualMachineError.java, java/lang/reflect/InvocationTargetException.java, java/net/BindException.java, java/net/ConnectException.java, java/net/MalformedURLException.java, java/net/NoRouteToHostException.java, java/net/ProtocolException.java, java/net/SocketException.java, java/net/UnknownHostException.java, java/net/UnknownServiceException.java, java/text/ParseException.java: Copied from Classpath, thanks to Mark Wielaard who did the merge. * java/lang/System.java (getProperty): Use single argument form of SecurityManager.checkPropertyAccess. * Makefile.in: Rebuilt. * Makefile.am (core_java_source_files): Added VMSecurityManager. * java/lang/VMSecurityManager.java: New file. * java/lang/SecurityManager.java: Merged with Classpath. 2001-08-31 Per Bothner * gcj/javaprims.h (_Jv_RegisterClassHook): New extern declaration. (_Jv_RegisterClassHookDefault): Likewise. * java/lang/Class.h (_Jv_RegisterClassHookDefault): Declare as friend. * java/lang/natClassLoader.cc (_Jv_RegisterClassHook): New variable. (_Jv_RegisterClassHookDefault): New.function. (_Jv_RegisterClasses): Call _Jv_RegisterClassHook. * java/lang/ClassLoader.java (system): Remove static field. (getSystemClassLoader): Get gnu.gcj.runtime.VMClassLoader.instance directly instead of using it to set the system field. (loadClass): Use VMClassLoader.instance instead of system field. (findSystemClass): Similar. * prims.cc (_Jv_RunMain): Clear VMClassLoader::instance rather than ClassLoader::system which no longer exists. * java/lang/natClassLoader.java (_Jv_FindClass): Simplify. 2001-08-31 Tom Tromey * java/io/BufferedReader.java, java/io/ObjectInput.java, java/io/ObjectInputValidation.java, java/io/ObjectOutput.java: Re-merged with Classpath. Re-merge with Classpath: * java/util/Comparator (equals): Added. * java/io/PipedWriter.java (write): Changed argument to `int'. * java/io/FileDescriptor.java (FileDescriptor()): New constructor. * java/io/File.java (getAbsoluteFile): Doesn't throw IOException. * Makefile.in: Rebuilt. * Makefile.am (ordinary_java_source_files): Removed EnumerationChain, added DoubleEnumeration. (nat_source_files): Added natResourceBundle.cc. * java/util/natResourceBundle.cc: New file. * gnu/java/util/DoubleEnumeration.java: New file. * gnu/gcj/util/EnumerationChain.java: Removed. * java/beans/VetoableChangeSupport.java: Merged with Classpath. * java/util/ResourceBundle.java: Merged with Classpath. * java/util/StringTokenizer.java: Merged with Classpath. * java/util/Locale.java: Merged with Classpath. * java/util/Random.java: Merged with Classpath. * java/util/PropertyResourceBundle.java: Merged with Classpath. * java/util/ListResourceBundle.java: Merged with Classpath. * java/util/ConcurrentModificationException.java: Re-merged with Classpath. * java/util/EmptyStackException.java: Likewise. * java/util/MissingResourceException.java: Likewise. * java/util/NoSuchElementException.java: Likewise. * java/util/TooManyListenersException.java: Likewise. * java/io/ByteArrayOutputStream.java: Re-merged with Classpath. * java/io/OptionalDataException.java: Merged with Classpath. 2001-08-31 Jason Merrill * exception.cc (PERSONALITY_FUNCTION): Simplify leb128 handling. 2001-08-31 Tom Tromey * java/io/ByteArrayInputStream.java: Merged with Classpath. 2001-08-30 Tom Tromey * java/io/BufferedReader.java: Re-merged with Classpath. 2001-08-28 Per Bothner * java/math/BigInteger.java (init(int,Random)): New method. Move body of constructor (int,Random)) here. Re-write it to avoid constructing unneeded temporaries. ((int,int,Random)): Use new init method to avoid constructing extra temporary BigIntegers. 2001-08-27 Tom Tromey * java/rmi/activation/Activatable.java, java/rmi/activation/ActivateFailedException.java, java/rmi/activation/ActivationDesc.java, java/rmi/activation/ActivationException.java, java/rmi/activation/ActivationGroup.java, java/rmi/activation/ActivationGroupDesc.java, java/rmi/activation/ActivationGroupID.java, java/rmi/activation/ActivationID.java, java/rmi/activation/ActivationInstantiator.java, java/rmi/activation/ActivationMonitor.java, java/rmi/activation/ActivationSystem.java, java/rmi/activation/Activator.java, java/rmi/activation/UnknownGroupException.java, java/rmi/activation/UnknownObjectException.java, java/rmi/AccessException.java, java/rmi/AlreadyBoundException.java, java/rmi/ConnectException.java, java/rmi/ConnectIOException.java, java/rmi/MarshalException.java, java/rmi/MarshalledObject.java, java/rmi/Naming.java, java/rmi/NoSuchObjectException.java, java/rmi/NotBoundException.java, java/rmi/RMISecurityException.java, java/rmi/RMISecurityManager.java, java/rmi/Remote.java, java/rmi/RemoteException.java, java/rmi/ServerError.java, java/rmi/ServerException.java, java/rmi/ServerRuntimeException.java, java/rmi/StubNotFoundException.java, java/rmi/UnexpectedException.java, java/rmi/UnknownHostException.java, java/rmi/UnmarshalException.java, java/rmi/dgc/DGC.java, java/rmi/dgc/Lease.java, java/rmi/dgc/VMID.java, java/rmi/registry/LocateRegistry.java, java/rmi/registry/Registry.java, java/rmi/registry/RegistryHandler.java, java/rmi/server/ExportException.java, java/rmi/server/LoaderHandler.java, java/rmi/server/LogStream.java, java/rmi/server/ObjID.java, java/rmi/server/Operation.java, java/rmi/server/RMIClassLoader.java, java/rmi/server/RMIClientSocketFactory.java, java/rmi/server/RMIFailureHandler.java, java/rmi/server/RMIServerSocketFactory.java, java/rmi/server/RMISocketFactory.java, java/rmi/server/RemoteCall.java, java/rmi/server/RemoteObject.java, java/rmi/server/RemoteRef.java, java/rmi/server/RemoteServer.java, java/rmi/server/RemoteStub.java, java/rmi/server/ServerCloneException.java, java/rmi/server/ServerNotActiveException.java, java/rmi/server/ServerRef.java, java/rmi/server/Skeleton.java, java/rmi/server/SkeletonMismatchException.java, java/rmi/server/SkeletonNotFoundException.java, java/rmi/server/SocketSecurityException.java, java/rmi/server/UID.java, java/rmi/server/UnicastRemoteObject.java, java/rmi/server/Unreferenced.java, gnu/java/rmi/dgc/DGCImpl.java, gnu/java/rmi/dgc/DGCImpl_Skel.java, gnu/java/rmi/dgc/DGCImpl_Stub.java, gnu/java/rmi/registry/RegistryImpl.java, gnu/java/rmi/registry/RegistryImpl_Skel.java, gnu/java/rmi/registry/RegistryImpl_Stub.java, gnu/java/rmi/rmic/RMIC.java, gnu/java/rmi/rmic/TabbedWriter.java, gnu/java/rmi/server/ProtocolConstants.java, gnu/java/rmi/server/RMIDefaultSocketFactory.java, gnu/java/rmi/server/RMIHashes.java, gnu/java/rmi/server/RMIObjectInputStream.java, gnu/java/rmi/server/RMIObjectOutputStream.java, gnu/java/rmi/server/UnicastConnection.java, gnu/java/rmi/server/UnicastConnectionManager.java, gnu/java/rmi/server/UnicastRef.java, gnu/java/rmi/server/UnicastRemoteCall.java, gnu/java/rmi/server/UnicastRemoteStub.java, gnu/java/rmi/server/UnicastServer.java, gnu/java/rmi/server/UnicastServerRef.java: RMI implementation from Kaffe. Relabelled classes to fit into Classpath tree. * Makefile.in: Rebuilt. * Makefile.am (rmi_java_source_files): New macro. (ordinary_java_source_files): Reference it. (bin_PROGRAMS): Added rmic and rmiregistry. (rmic_SOURCES): New macro. (EXTRA_rmic_SOURCES): Likewise. (rmic_LDFLAGS): Likewise. (rmic_LINK): Likewise. (rmic_LDADD): Likewise. (rmic_DEPENDENCIES): Likewise. (rmiregistry_SOURCES): New macro. (EXTRA_rmiregistry_SOURCES): Likewise. (rmiregistry_LDFLAGS): Likewise. (rmiregistry_LINK): Likewise. (rmiregistry_LDADD): Likewise. (rmiregistry_DEPENDENCIES): Likewise. 2001-08-26 Bryce McKinlay * name-finder.cc (lookup): Ignore a null dli_fname from dladdr. * Makefile.am: New friends for java/lang/Thread.h. * prims.cc (runFirst): Removed. (JvRunMain): Merged into _Jv_RunMain. Now just calls that. (_Jv_RunMain): Now takes either a klass or class name parameter. Create a gnu.gcj.runtime.FirstThread and attach the native thread to that, then run it using _Jv_ThreadRun. Remove special handling of jar files, instead pass is_jar parameter through to FirstThread. * gcj/javaprims.h: Add prototypes for _Jv_ThreadRun and new variant of _Jv_AttachCurrentThread. * gnu/gcj/runtime/FirstThread.java (FirstThread): Now extends Thread. (run): New method. Take care of looking up main class manifest attribute and calling forName if necessary. Then call call_main. (call_main): New native method. * gnu/gcj/runtime/natFirstThread.cc (call_main): New function, code relocated from prims.cc. Look up and call main method. * java/lang/Thread.java (run_): Removed. * java/lang/natThread.cc (run_): Renamed to... (_Jv_ThreadRun): this. JVMPI notification code moved to ... (_Jv_NotifyThreadStart): here. New function. (countStackFrames, destroy, resume, suspend, stop): Throw UnsupportedOperationExceptions rather than JvFail'ing. (_Jv_AttachCurrentThread): New variant takes a Thread argument. Existing version wraps new variant. 2001-08-23 Tom Tromey * java/lang/reflect/Field.java (toString): Use Method.appendClassName. * java/lang/reflect/Constructor.java (toString): Use Method.appendClassName. * java/lang/reflect/Method.java: Reindented. (appendClassName): New method. (toString): Use it. * defineclass.cc (handleMethod ): Initialize `throws' field of method. (read_one_method_attribute): Handle Exceptions attribute. * java/lang/reflect/natMethod.cc (ClassClass): Removed. (ObjectClass): Removed. (getType): Compute `exception_types'. * java/lang/Class.h (struct _Jv_Method): Added `throws' field. 2001-08-21 Anthony Green * java/lang/natClassLoader.cc (findClass): Search for lib-gnu-pkg-quux.so, not gnu-pkg-quux.so. 2001-08-21 Jeff Sturm * java/util/IdentityHashMap.java (get): Fix off-by-one error. (put): Likewise. 2001-08-20 Tom Tromey * java/awt/GridBagConstraints.java: Removed comment. * jni.cc (nathash, nathash_count, nathash_size): New globals. (DELETED_ENTRY): New define. (hash): New function. (nathash_find_slot): Likewise. (natrehash): Likewise. (nathash_add): Likewise. (_Jv_JNI_RegisterNatives): No longer interpreter-specific. Use nathash_add. (nathash_find): New function. (_Jv_LookupJNIMethod): Use it. Synchronize body. (call): Synchronize around assignment. 2001-08-17 Jeff Sturm * gnu/gcj/convert/UnicodeToBytes.java (write): Write work buffer starting from zero offset. 2001-08-17 Hans-J. Boehm * boehm.cc: Include gc_local_alloc.h if appropriate. (GC_GENERIC_MALLOC): Don't define. (MAYBE_MARK): Redefine for GC 6.0. (_Jv_MarkObj): Mark class differently. (_Jv_AllocArray): Use GC_generic_malloc. 2001-08-17 Mark J Roberts * java/math/BigInteger.java (randBytes): New method. (BigInteger(int,Random)): Use randBytes. 2001-08-17 Tom Tromey * gnu/gcj/convert/IOConverter.java: Add `646' alias. 2001-08-17 Hans-J. Boehm * BigInteger.java: fix right shifts by nonzero multiples of 32. 2001-08-15 Tom Tromey * jni.cc: Include IdentityHashMap.h, not Hashtable.h. (local_ref_table, global_ref_table): Now IdentityHashMap. (_Jv_JNI_Init): Updated for new types. (mark_for_gc): Likewise. (unmark_for_gc): Likewise. * gcj/javaprims.h: Rebuilt class list. * Makefile.in: Rebuilt. * Makefile.am (core_java_source_files): Added new file. * java/util/IdentityHashMap.java: New file. * gnu/gcj/convert/natIconv.cc (read): Handle EINVAL and E2BIG correctly. 2001-08-09 Tom Tromey * java/awt/image/SampleModel.java (getPixel): Set correct array element. From Chris Meyer. 2001-08-10 Loren J. Rittle * java/lang/natObject.cc (is_mp): Protect use of _SC_NPROCESSORS_ONLN. * gnu/gcj/convert/natIconv.cc (done): Use HAVE_ICONV. 2001-08-06 Tom Tromey * java/io/InputStreamReader.java (refill): Only call refill on BufferedInputStream when appropriate constraints are met. 2001-08-05 Tom Tromey * java/io/StringWriter.java: Merged with Classpath. * java/io/InputStream.java: Merged with Classpath. * java/io/OutputStream.java: Merged with Classpath. * java/io/PushbackInputStream.java: Merged with Classpath. * java/io/CharArrayReader.java: Merged with Classpath. * java/io/CharArrayWriter.java: Merged with Classpath. 2001-08-02 Tom Tromey * prims.cc (JNI_OnLoad): Don't declare. (_JNI_OnLoad): Don't define. (_Jv_CreateJavaVM): Don't handle JNI_OnLoad. 2001-08-02 Tom Tromey * java/io/RandomAccessFile.java (seek): Let seek go past end of file. (skipBytes): Don't fail if seeking past end of file. * java/io/FileInputStream.java (skip): Don't fail if seeking past end of file. * java/io/natFileDescriptorWin32.cc (seek): Handle `eof_trunc' argument. * java/io/natFileDescriptorEcos.cc (seek): Handle `eof_trunc' argument. * java/io/natFileDescriptorPosix.cc (seek): Handle `eof_trunc' argument. * java/io/FileDescriptor.java (seek): Added `eof_trunc' argument. 2001-08-02 Martin Kahlert * jni.cc (JNI_CreateJavaVM): Call _Jv_JNI_Init in order to initialize global_ref_table/local_ref_table. 2001-08-02 Tom Tromey * configure: Rebuilt. * configure.in (THREADSPEC): Don't set THREADLIBS on Cygwin. From David Billinghurst. 2001-08-01 Rainer Orth * include/posix.h (_POSIX_PII_SOCKET): Define. * configure.in (HAVE_SOCKLEN_T): Define. * java/net/natPlainSocketImpl.cc [!HAVE_SOCKLEN_T]: Move socklen_t definition up. (_JV_accept): New function, avoids Tru64 UNIX accept macro. (java::net::PlainSocketImpl::accept): Use it. Fixes PRs libgcj/3694, libgcj/3696. * configure.in (HAVE_STRUCT_IPV6_MREQ): New test. * acconfig.h (HAVE_STRUCT_IPV6_MREQ): Provide template. * configure, include/config.h.in: Regenerate. * java/net/natPlainDatagramSocketImpl.cc (union McastReq): Use it. (mcastGrp): Likewise. (java::net::PlainDatagramSocketImpl::setOption): Guard against missing IPV6_MULTICAST_IF. Fixes PR libgcj/3694. 2001-08-01 Jeff Sturm * libgcj.spec.in: Pass -fkeep-inline-functions to jc1. 2001-07-30 Christian Iseli * Makefile.in: Rebuilt. * Makefile.am (GCJLINK): Added --tag=GCJ. (LIBLINK): Likewise. 2001-07-30 Tom Tromey * java/util/Date.java: Re-merged with Classpath. 2001-07-30 Jeff Sturm * java/net/natPlainDatagramSocketImpl.cc: Undefine bind if defined. (_Jv_bind): New static function. (bind): Use _Jv_bind. * java/net/natPlainSocketImpl.cc: Undefine bind, connect if defined. (_Jv_bind, _Jv_connect): New static functions. (bind): Use _Jv_bind. (connect): Use _Jv_connect. 2001-07-30 Tom Tromey Corey Minyard * gnu/gcj/convert/natIconv.cc (done): New methods. * gnu/gcj/convert/Output_iconv.java (done): New method. * gnu/gcj/convert/Input_iconv.java (done): New method. * gnu/gcj/convert/UnicodeToBytes.java (defaultEncodingClass): Removed. (getDefaultEncodingClass): Removed. (getDefaultEncoder): Use getEncoder. (done): New method. (defaultEncoding, CACHE_SIZE, encoderCache, currCachePos): New static fields. * gnu/gcj/convert/BytesToUnicode.java (defaultDecodingClass): Removed. (defaultEncoding, CACHE_SIZE, decoderCache, currCachePos): New static fields. (getDefaultDecodingClass): Removed. (getDefaultDecoder): Use getDecoder. (getDecoder): Look up decoder in cache. (done): New method. * java/lang/natString.cc (init): Call `done' on converter. (getBytes): Likewise. 2001-07-30 Tom Tromey * java/lang/Integer.java: Merged with Classpath. 2001-07-30 Bryce McKinlay * java/util/GregorianCalendar.java (GregorianCalendar): Call setTimeInMillis() to set the default/current time. 2001-07-29 Mark Wielaard * HACKING: add description on updating namespace 2001-07-26 Bryce McKinlay * java/util/Calendar.java (set): Never recompute fields here. They will already be set if someone set time explicitly, and it can cause problems to do so. Don't invalidate AM_PM setting if HOUR is set. * java/util/GregorianCalendar.java (computeTime): Don't ignore an HOUR setting if AM_PM is set. Don't try to ensure the HOUR value is sane. * java/text/SimpleDateFormat.java (defaultCentury): New field. (readObject): Call set2DigitYearStart if appropriate so that defaultCentury is calculated. (SimpleDateFormat): Don't bother clearing calendar here. Call computeCenturyStart(). (set2DigitYearStart): Calculate and set defaultCentury. (format): Don't clone the calendar. Use "calendar" not "theCalendar" everywhere. (parse): Likewise. If the pattern is "y" or "yy" and it found exactly 2 numeric digits, use the 80-20 heuristic to parse the value into a default century based on defaultCenturyStart. (computeCenturyStart): Rewritten. Call set2DigitYearStart(). 2001-07-25 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (libgcj.jar): Correctly fail when bytecode compilation fails. 2001-07-24 Rainer Orth * prims.cc (_JNI_OnLoad): New function. (JNI_OnLoad): Use it. (_Jv_CreateJavaVM): Check for _JNI_OnLoad, not NULL. 2001-07-24 Rainer Orth * Makefile.am (AM_MAKEFLAGS): Pass RUNTESTFLAGS. Makefile.in: Regenerate. 2001-07-24 Tom Tromey * java/lang/VMClassLoader.java (getPrimitiveClass): Return correct type. 2001-07-23 Tom Tromey * gcj/javaprims.h: Rebuilt class list. * Makefile.in: Rebuilt. * Makefile.am (core_java_source_files): Added VMClassLoader. * java/lang/VMClassLoader.java: New file. * java/lang/Boolean.java: Merged with Classpath. * java/lang/Byte.java: Merged with Classpath. * java/lang/Integer.java: Merged with Classpath. * java/lang/Long.java: Merged with Classpath. * java/lang/Number.java: Merged with Classpath. * java/lang/Short.java: Merged with Classpath. 2001-07-22 Jeff Sturm * configure.host: Enable hash synchronization for alpha*-*. * include/posix-threads.h (_Jv_ThreadSelf): Added inline function for alpha. * java/lang/natObject.cc (compare_and_swap, release_set, compare_and_swap_release): Added inline functions for alpha. 2001-07-18 Rainer Orth * java/net/natPlainDatagramSocketImpl.cc (mcastGrp): Use new RFC 2533 socket options IPV6_JOIN_GROUP, IPV6_LEAVE_GROUP, falling back to old RFC 2133 variants if missing. 2001-07-18 Tom Tromey * java/io/natFileWin32.cc (_access): Renamed. (_stat): Likewise. * java/io/natFile.cc (_access): Renamed. (_stat): Likewise. * java/io/File.java (access, stat): Add leading `_' to name. Updated all callers. 2001-07-18 Tom Tromey For PR java/2812: * libgcj.spec.in (*lib): Added LIBICONV. * configure: Rebuilt. * configure.in: Call AM_ICONV. Don't check for iconv function. Add parameters to JV_HASH_SYNCHRONIZATION define. * acinclude.m4 (AM_ICONV): New macro, from Bruno Haible. 2001-07-17 Bryce McKinlay * java/util/LinkedList.java (clone): Clear the copy list with clear(), not by setting its size field. 2001-07-13 Alexandre Petit-Bianco * include/i386-signal.h (HANDLE_DIVIDE_OVERFLOW): Removed unused local `_ebp.' 2001-07-12 Tom Tromey David Brownell Fix for PR libgcj/3426: * gnu/gcj/convert/natIconv.cc: Include CharConversionException.h, errno.h. (read): Throw exception if character conversion fails. * java/io/BufferedInputStream.java (refill): Now package-private. * java/io/InputStreamReader.java (ready): Simplified. (refill): New method. (read): Use it. 2001-07-12 Tom Tromey Report from Henner Zeller: * java/io/FileOutputStream.java (FileOutputStream): Throw FileNotFoundException, not IOException. 2001-07-10 Anthony Green * Makefile.in: Rebuilt. * Makefile.am: Add new files. * org/w3c/dom/Attr.java, org/w3c/dom/CDATASection.java, org/w3c/dom/CharacterData.java, org/w3c/dom/Comment.java, org/w3c/dom/DOMException.java, org/w3c/dom/DOMImplementation.java, org/w3c/dom/Document.java, org/w3c/dom/DocumentFragment.java, org/w3c/dom/DocumentType.java, org/w3c/dom/Element.java, org/w3c/dom/Entity.java, org/w3c/dom/EntityReference.java, org/w3c/dom/NamedNodeMap.java, org/w3c/dom/Node.java, org/w3c/dom/NodeList.java, org/w3c/dom/Notation.java, org/w3c/dom/ProcessingInstruction.java, org/w3c/dom/Text.java, org/w3c/dom/ranges/DocumentRange.java, org/w3c/dom/ranges/Range.java, org/w3c/dom/ranges/RangeException.java, org/w3c/dom/traversal/DocumentTraversal.java, org/w3c/dom/traversal/NodeFilter.java, org/w3c/dom/traversal/NodeIterator.java, org/w3c/dom/traversal/TreeWalker.java, org/xml/sax/ext/DeclHandler.java, org/xml/sax/ext/LexicalHandler.java, org/xml/sax/helpers/AttributeListImpl.java, org/xml/sax/helpers/AttributesImpl.java, org/xml/sax/helpers/DefaultHandler.java, org/xml/sax/helpers/LocatorImpl.java, org/xml/sax/helpers/NamespaceSupport.java, org/xml/sax/helpers/ParserAdapter.java, org/xml/sax/helpers/ParserFactory.java, org/xml/sax/helpers/XMLFilterImpl.java, org/xml/sax/helpers/XMLReaderAdapter.java, org/xml/sax/helpers/XMLReaderFactory.java, org/xml/sax/AttributeList.java, org/xml/sax/Attributes.java, org/xml/sax/ContentHandler.java, org/xml/sax/DTDHandler.java, org/xml/sax/DocumentHandler.java, org/xml/sax/EntityResolver.java, org/xml/sax/ErrorHandler.java, org/xml/sax/HandlerBase.java, org/xml/sax/InputSource.java, org/xml/sax/Locator.java, org/xml/sax/Parser.java, org/xml/sax/SAXException.java, org/xml/sax/SAXNotRecognizedException.java, org/xml/sax/SAXNotSupportedException.java, org/xml/sax/SAXParseException.java, org/xml/sax/XMLFilter.java, org/xml/sax/XMLReader.java: New files. 2001-07-10 Alexandre Petit-Bianco * Makefile.am: Added `java/lang/ThreadLocal.java'. * Makefile.in: Regenerate. * java/lang/ThreadLocal.java: Initial import. 2001-07-07 Jeff Sturm * Makefile.am (libgcj.jar): Don't recursively make built_java_source_files. Avoid long command lines. Don't change to $(srcdir) to invoke javac. (libgcj.la, libgcjx.la); Avoid long command lines. ($(nat_headers),$(x_nat_headers)): Depend on libgcj.jar. * Makefile.in: Rebuilt. 2001-07-06 Andrew Haley * include/i386-signal.h: Don't do anything with unsigned divide overflow except throw an exception. 2001-07-05 Tom Tromey For PR java/3562: * java/lang/Class.h (Class(void)): Now private. Removed implementation. From dmorsberger@sensysdl.com. 2001-07-02 Tom Tromey Fix for PR bootstrap/3281: * aclocal.m4, configure: Rebuilt. * acinclude.m4 (LIBGCJ_CONFIGURE): Don't set libgcj_flagbasedir. Correctly compute libgcj_basedir. (mkinstalldirs): Define and subst. 2001-07-01 Jeremy Nimmer For PR libgcj/3523: * java/io/LineNumberReader.java (reset): Pass correct arguments to countLines. 2001-06-27 Tom Tromey * gnu/gcj/convert/IOConverter.java: Manually maintained alias now lowercase. 2001-06-25 Tom Tromey * scripts/encodings.pl: Generate lower-case names. Updated URL for `character-sets' file. * gnu/gcj/convert/IOConverter.java (canonicalize): Convert name to lower case. Rebuilt list of aliases. 2001-06-25 Tom Tromey * java/io/natFileDescriptorPosix.cc (open): Change error message formatting. From David Brownell. 2001-06-21 Tom Tromey * include/java-interp.h (_Jv_InterpClass): Use JV_MARKOBJ_DECL. From Corey Minyard. 2001-06-19 Mark J. Roberts * java/math/BigInteger.java (byteArrayToIntArray): Don't include extraneous/malformed sign word. 2001-06-15 Tom Tromey * jni.cc (_Jv_JNI_NewLocalRef): Search other frames. 2001-06-15 Tom Tromey * java/lang/natRuntime.cc (_Jv_FindSymbolInExecutable): Return NULL if no library on the list has the symbol. (init): Call add_library on the program itself. * prims.cc (JvRunMain): Initialize Runtime before searching for `main'. (_Jv_RunMain): Likewise. 2001-06-15 Tom Tromey * jni.cc (ClassClass): Removed; updated all users. (ObjectClass): Likewise. (ThrowableClass): Likewise. (MethodClass): Likewise. (ThreadGroupClass): Likewise. (local_ref_table): Renamed from `ref_table'. (global_ref_table): New global. (_Jv_JNI_Init): Initialize both ref tables. (mark_for_gc): Added `ref_table' parameter. (unmark_for_gc): Likewise. Also, fail if we unreferenced too many times. (_Jv_JNI_NewGlobalRef): Updated for new mark function. (_Jv_JNI_DeleteGlobalRef): Likewise. (_Jv_JNI_DeleteLocalRef): Likewise. (_Jv_JNI_NewLocalRef): Likewise. (_Jv_JNI_PopLocalFrame): Likewise. (_Jv_JNI_GetStringChars): Likewise. (_Jv_JNI_ReleaseStringChars): Likewise. (_Jv_JNI_GetPrimitiveArrayElements): Likewise. (_Jv_JNI_ReleasePrimitiveArrayElements): Likewise. 2001-06-14 Tom Tromey Fix for PR libgcj/3144: * java/util/Date.java: Merged with Classpath. 2001-06-12 Tom Tromey * aclocal.m4, configure: Rebuilt. * acinclude.m4: Find configure.host in srcdir. 2001-06-07 Tom Tromey Fix for PR libgcj/3059: * java/lang/natSystem.cc (init_properties): Define `java.home'. * Makefile.in: Rebuilt. * Makefile.am (AM_CXXFLAGS): Define PREFIX. 2001-06-10 Alexandre Petit-Bianco * exception.cc (cstdlib): Replaces stdlib.h. (_Jv_Throw): Use std::abort(). (PERSONALITY_FUNCTION): Likewise. 2001-06-09 Alexandre Oliva , Stephen L Moshier * acinclude.m4 (AC_EXEEXT): Work around in case it expands to nothing, as in autoconf 2.50. * aclocal.m4, configure: Rebuilt. 2001-06-08 Tom Tromey * configure: Rebuilt. * configure.in: Compute new aux dir using `pwd'. 2001-06-07 Tom Tromey For PR bootstrap/3075: * configure, aclocal.m4, Makefile.am: Rebuilt. * configure.in: Pass `--with-auxdir' to subdir configure. Don't call AC_CONFIG_AUX_DIR or AC_CANONICAL_SYSTEM. Look for unwind.h relative to libgcj_basedir. * acinclude.m4 ((LIBGCJ_CONFIGURE): Call AC_CONFIG_AUX_DIR and AC_CANONICAL_SYSTEM here. * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Use srcdir, not libgcj_basedir. ($(extra_headers)): New target. 2001-06-05 Martin Kahlert Bryce McKinlay * java/lang/natClass.cc (_Jv_IsAssignableFrom): Ensure that ancestors table index is within allowed bounds. Ensure that we don't try to access class itable at a negative offset. Avoid an ancestor table lookup if source is a primitive type class. (isInstance): Remove redundant isPrimitive() check. 2001-06-04 Tom Tromey * java/security/PublicKey.java: Extend Key. * java/security/PrivateKey.java: Extend Key. 2001-06-02 Anthony Green * java/lang/natRuntime.cc (_Jv_FindSymbolInExecutable): Provide an alternate when USE_LTDL not defined. 2001-06-02 Anthony Green * configure: Rebuild. * configure.in: Remove data_start hack. * libgcj.spec.in: Ditto. * Makefile.in: Rebuild. * Makefile.am: Ditto. * libgcjdata.c: Remove. 2001-06-02 Anthony Green * configure: Rebuild. * configure.in (LIBFFIINCS, LIBFFI): Introduce. Add --without-libffi option. Tweak --disable-java-net processing. * Makefile.in: Rebuild. * Makefile.am (LIBFFIINCS, LIBFFI): Use. * include/config.h.in: Rebuild. * acconfig.h (USE_LIBFFI): Define. * java/lang/reflect/natMethod.c: Use USE_LIBFFI. 2001-06-02 Anthony Green * configure: Rebuilt. * configure.in: Test for sigaction on native builds. * prims.cc: Check HAVE_SIGACTION. * include/config.h.in: Rebuilt. 2001-05-31 Jeff Sturm * natFile.cc (get_entry): Removed functions. (performList): Call readdir or readdir_r if HAVE_READDIR_R defined. Allocate enough storage for d_name if using readdir_r. 2001-05-31 Tom Tromey * java/io/natFileDescriptorPosix.cc (open): Allocate buffer to correct size. (write): Loop until write completes. From Corey Minyard. 2001-05-29 Laurent Guerby * java/awt/geom/Rectangle2D.java: fix doc typo. 2001-05-31 Tom Tromey * java/sql/DriverManager.java (getDrivers): Handle case where driver's class loader is null. From Corey Minyard. 2001-05-29 Tom Tromey * include/jvm.h (_Jv_ThrowNoMemory): Mark as noreturn. * configure: Rebuilt. * configure.in: Only add multilib support code if we just rebuilt top-level Makefile. 2001-05-29 Andrew Haley * include/i386-signal.h (MAKE_THROW_FRAME): Don't fix up frame pointer: the dwarf unwinder in libgcc will do everything that's needed. (HANDLE_DIVIDE_OVERFLOW): Tidy. Don't mess with stack frames any more than we absolutely need to. * configure.host (EXCEPTIONSPEC): Remove libgcj_sjlj on Alpha. * configure.in (SIGNAL_HANDLER): Use include/dwarf2-signal.h on Alpha. (SIGNAL_HANDLER): Test "$enable_sjlj_exceptions", not "$libgcj_sjlj". * configure: Rebuilt. * include/dwarf2-signal.h (MAKE_THROW_FRAME): Adjust PC for Alpha. (SIGNAL_HANDLER): Use siginfo style handler. (INIT_SEGV): Likewise. (INIT_FPE): Likewise. * include/ppc-signal.h: Delete whole file. 2001-05-24 Tom Tromey * java/lang/natString.cc (init): Throw ArrayIndexOutOfBoundsException. (getChars): Likewise. (getBytes): Likewise. (valueOf): Likewise. * configure.in: Only allow hash synchronization when POSIX threads are enabled. * java/lang/natObject.cc (alloc_heavy): Properly find `init' field of sync info object. 2001-05-23 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (AM_CXXFLAGS): Remove -fvtable-thunks. Revert patch of 2001-05-21: * Makefile.am (libgcj_la_DEPENDENCIES): Removed nat_files. (libgcj_la_LIBADD): Likewise. (libgcjx_la_DEPENDENCIES): Removed x_nat_files. (libgcjx_la_LIBADD): Likewise. * 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 * 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. 2001-05-23 Joseph S. Myers * gij.cc (version): Update copyright year. 2001-05-22 Anthony Green * configure.in: Tweak canadian cross test, and don't redefine GCJ for cross builds. 2001-05-21 Per Bothner Implement invocation interface; don't create new thread for main. * java/lang/Thread.java (gen_name): Make native. ((Thread,THreadGroup,Runnable,String)): New private constructor, used by other constructors, and _Jv_AttachCurrentThread. * java/lang/natThread.cc (gen_name): New implementation. (_Jv_AttachCurrentThread, _Jv_DetachCurrentThread): New. * prims.cc (main_init): Removed, replaced by _Jv_CreateJavaVM. (_Jv_CreateJavaVM): New runtime initialization procedure. (runFirst): New proecdure - mostly code from old FirstThread::run. (JvRunMain, _Jv_RunMain): Re-write to use new invocation code. * gcj/cni.h (JvCreateJavaVM, JvAttachCurrentThread, JvDetachCurrentThread): New inline wrappers. * gcj/javaprims.h (_Jv_CreateJavaVM, _Jv_AttachCurrentThread, _Jv_DetachCurrentThread): New declarations. * gnu/gcj/runtime/FirstThread.java: Gutted. Now contains only ... (getMain): new static method. * gnu/gcj/runtime/natFirstThread.cc: Removed; run method replaced by runFirst in prims.cc. (java/lang/Thread.h): Update for new invocation interface. * include/posix-threads.h (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New declarations. * posix-threads.cc (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New. (really_start): Use new _Jv_ThreadRegister. * include/no-threads.h (_Jv_ThreadInitData): No longer inline. (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New empty inlines. * no-threads.cc (_Jv_ThreadInitData): Set _Jv_OnlyThread here. Complain of called when _Jv_OnlyThread already set. (_Jv_ThreadStart): Always JvFail. * include/win32-threads.h (_Jv_Thread_t): New thread_obj field. (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New declarations. * win32-threads.cc (struct starter): Remove objet field - we use _Jv_Thread_t's new thread_obj field instead. (_Jv_ThreadInitData): Set _Jv_Thread_t's thread_obj field. (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New. (really_start): Use new _Jv_ThreadRegister. * jni.cc (_Jv_JNI_AttachCurrentThread): Use _Jv_AttachCurrentThread. (_Jv_JNI_DetachCurrentThread): Use _Jv_DetachCurrentThread. * gnu/gcj/jni/NativeThread.java, gnu/gcj/jni/natNativeThread.cc: Removed - no longer needed with new invocation interface. * Makefile.am: Update for removed/added files. 2001-05-21 Per Bothner * Makefile.am (libgcj_la_DEPENDENCIES): Add $(nat_files). (libgcj_la_LIBADD): Likewise. (libgcjx_la_DEPENDENCIES, libgcjx_la_LIBADD): Add $(x_nat_files). 2001-05-21 Per Bothner * gcj/javaprims.h (_Jv_FormatInt): New declaration. * java/lang/natString.cc (_JvFormatInt): New primitive, with logic taken from old Integer.toString code. (Integer::valueOf): Use _Jv_FormatInt. * java/lang/Integer.java (toString): Just use call String.valueOf. * java/lang/Long.java (toString): Fix typo in comment. * java/lang/String.java (valueOf(int)): Make native. * java/lang/StringBuffer.java (append(int)): Make native. * java/lang/natStringBuffer.cc: New file, for append(jint). * Makefile.am (nat_source_files): Add java/lang/natStringBuffer.cc. 2001-05-21 Tom Tromey * gnu/gcj/runtime/VMClassLoader.java (VMClassLoader): Now public. 2001-05-18 Andrew Haley * include/dwarf2-signal.h: New file. * configure.in (SYSDEP_SOURCES): Add dwarf2-signal.h for PPC. * configure.host (EXCEPTIONSPEC): Don't use sjlj on PPC. * configure: Rebuilt. 2001-05-21 Bryce McKinlay * configure.in: Update boehm-gc include dir for new GC version. * configure: Rebuilt. * exception.cc: Only include . Remove TRUE/FALSE hacks and extern "C" wrapper. * boehm.cc: Update includes for new GC version. MAKE_PROC is now GC_MAKE_PROC. mark_proc is now GC_mark_proc. * posix-threads.cc: Only include . Don't need to wrap with extern "C". 2001-05-18 Alexandre Petit-Bianco * include/posix-threads.h (_Jv_CondInit): `0' used in place of `NULL.' (_Jv_MutexInit): Likewise. 2001-05-18 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (awt_java_source_files): Added Polygon.java. 2001-05-18 Bryce McKinlay * include/jvm.h: Move "#pragma GCC java_exceptions" to ... * gcj/javaprims.h: ... here. * gnu/gcj/io/shs.cc: Add "#pragma GCC java_exceptions". 2001-05-17 Martin Kahlert * java/lang/natClass.cc (_Jv_FindIIndex): Fix an off by one error with length of ioffset table. (_Jv_IsAssignableFrom): Likewise. 2001-05-17 Per Bothner * Makefile.am (ZIP): The "fastjar" binary is now plain "jar". 2001-05-16 Tom Tromey * java/text/SimpleDateFormat.java (parse): Handle non-dst time zones. 2001-05-15 Tom Tromey * java/util/GregorianCalendar.java (computeTime): Only call getTimeZone() once. 2001-05-14 Tom Tromey * java/text/SimpleDateFormat.java (parse): Clear DST_OFFSET and ZONE_OFFSET just before computing the time. 2001-05-12 Zack Weinberg * Makefile.am (libgcj_la_OBJECTS): Remove libsupc++convenience.la. * Makefile.in: Regenerate (by hand). * include/jvm.h: Add #pragma GCC java_exceptions at top of file. * doc/cni.sgml: Document #pragma GCC java_exceptions. 2001-05-11 Richard Henderson * configure.in (ia64-*): Don't set SYSDEP_SOURCES. * java/lang/natThrowable.cc: Don't use __ia64_backtrace. 2001-05-11 Richard Henderson * exception.cc: Include unwind-pe.h. Remove all pointer encoding logic. 2001-05-10 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (awt_java_source_files): Added Polygon.java. * java/awt/Polygon.java: New file. * java/awt/geom/AffineTransform.java (setToRotation(double,double,double)): New method. (AffineTransform): Set type to TYPE_GENERAL_TRANSFORM. (setToShear): Likewise. 2001-05-10 Tom Tromey * java/util/GregorianCalendar.java: Imported from Classpath. * gnu/java/locale/LocaleInformation_nl.java: New file from Classpath. * gnu/java/locale/LocaleInformation_en.java: Likewise. * gnu/java/locale/LocaleInformation_de.java: Likewise. * gnu/java/locale/LocaleInformation.java: Likewise. * natGregorianCalendar.cc: Removed. * Makefile.in: Rebuilt. * Makefile.am (nat_source_files): Removed natGregorianCalendar.cc. 2001-05-10 Tom Tromey * java/text/SimpleDateFormat.java (computeCenturyStart): New method. (defaultCenturyStart): Use it. (readObject): Likewise. (SimpleDateFormat): Clear the calendar. Set the grouping on the number format. (parse): Copy the calendar before modifying it. Correctly handle the time zone. * java/util/Calendar.java (clear): Set field value(s) to 0. 2001-05-10 Jeff Sturm * Calendar.java (get): Clear areFieldsSet if requested field is not set. (set): Unset fields that depend on new value. 2001-05-06 Bryce McKinlay * java/lang/Class.h (_Jv_Self): New union type. (Class): Manipulate vtable pointer via _Jv_Self union. Thanks to Jeff Sturm and Fergus Henderson. 2001-05-06 Bryce McKinlay * java/lang/ClassLoader.java: Remove dead code fragment. 2001-05-03 Martin Kahlert * jni.cc (_Jv_JNI_GetPrimitiveArrayRegion): Fixed bounds checking. (_Jv_JNI_SetPrimitiveArrayRegion): Likewise. 2001-04-30 Andrew Haley * libgcj.spec.in (jc1): Add EXCEPTIONSPEC. * configure.host (EXCEPTIONSPEC): New. * configure.in (EXCEPTIONSPEC): New. * configure: Rebuilt. 2001-05-02 Bryce McKinlay * doc/*.texi: Remove generated documentation. 2001-04-30 Matt Kraai * java/io/natFile.cc (performSetReadOnly): Fix #ifdef test. (performDelete): Fix #endif placement. 2001-04-27 Zack Weinberg * prims.cc (_Jv_ThisExecutable): Use _Jv_Malloc. * posix-threads.cc (_Jv_ThreadInitData): Use _Jv_Malloc. (_Jv_ThreadDestroyData): Use _Jv_Free. * java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader): Use _Jv_Malloc. 2001-04-27 Tom Tromey * jni.cc (_Jv_JNI_GetPrimitiveArrayRegion): Fixed bounds checking. (_Jv_JNI_SetPrimitiveArrayRegion): Likewise. 2001-04-27 Martin Kahlert * include/jni.h (struct JNINativeInterface): Fixed types in Get/Set*ArrayRegion declarations. (class _Jv_JNIEnv): Likewise. 2001-04-26 Alexandre Oliva * configure.in: Obtain THREADS with `gcc -v'. * configure: Rebuilt. 2001-04-25 Bryce McKinlay Fix PR libgcj/2237: * java/io/ObjectStreamClass.java (setClass): Calculate serialVersionUID for local class and compare it against the UID from the Object Stream. Throw InvalidClassException upon mismatch. (setUID): Renamed to... (getClassUID): this. Return the calculated class UID rather than setting uid field directly. (getDefinedSUID): Removed. * java/io/ObjectInputStream.java (resolveClass): Use the three-argument Class.forName(). * java/io/InvalidClassException (toString): Don't include classname in result if it is null. 2001-04-25 Kaveh R. Ghazi * java/net/natInetAddress.cc (java::net::InetAddress::aton): Wrap use of inet_pton in HAVE_INET6. 2001-04-25 Bryce McKinlay java.security merge and ClassLoader compliance fixes. * java/lang/Class.h (Class): Include ProtectionDomain.h. New protectionDomain field. (forName): Add initialize parameter. Fixes declaration to comply with JDK spec. * java/lang/natClass.cc (forName): Correct declaration of the three-arg variant. Honour "initialize" flag. (getProtectionDomain0): New method. * java/lang/Class.java: Fix forName() declaration. (getPackage): New method based on Classpath implementation. (getProtectionDomain0): New native method decl. (getProtectionDomain): New method. * java/lang/ClassLoader.java (getParent): Now final. (definedPackages): New field. (getPackage): New. (defineClass): New variant with protectionDomain argument. (definePackage): New. (getPackages): New. (findSystemClass): Now final. (getSystemResourceAsStream): Remove redundant "final" modifier. (getSystemResource): Remove redundant "final" modifier. (getResources): Now final. (protectionDomainPermission): New static field. (unknownProtectionDomain): Ditto. (defaultProtectionDomain): Ditto. (getSystemClassLoader): Now non-native. * java/util/ResourceBundle.java (tryGetSomeBundle): Use the correct arguments for Class.forName(). * java/lang/Package.java: New file. * gnu/gcj/runtime/VMClassLoader.java (getVMClassLoader): Removed. (instance): Static initialize singleton. (findClass): Override this, not findSystemClass. * java/lang/natClassLoader.cc (defineClass0): Set class's protectionDomain field as specified. (getSystemClassLoader): Removed. (findClass): Renamed from findSystemClass. Call the interpreter via URLClassLoader.findClass if loading class via dlopen fails. * java/security/*.java: java.security import/merge with Classpath. * java/security/acl/*.java: Likewise. * java/security/interfaces/*.java: Likewise. * java/security/spec/*.java: Likewise. * java/net/NetPermission.java: Likewise. * java/net/SocketPermission.java: Likewise. * gnu/java/security/provider/DefaultPolicy.java: Likewise. * Makefile.am: Add new classes. * Makefile.in: Rebuilt. * gcj/javaprims.h: CNI namespace rebuild. 2001-04-24 Alexandre Oliva * configure.in (CPPFLAGS): Added builddir and srcdir to CPPFLAGS for libtool tests. Pre-create gnu/classpath/Configuration.java. * configure: Rebuilt. 2001-04-21 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (awt_java_source_files): Added Line2D.java. * java/awt/geom/Line2D.java: Wrote. * java/awt/Menu.java (addNotify): Wrote. * java/awt/PopupMenu.java (addNotify): Implemented. (show): Likewise. * java/awt/Scrollbar.java (addNotify): Call super.addNotify. * java/awt/List.java (addNotify): Call super.addNotify. * java/awt/Label.java (addNotify): Call super.addNotify. * java/awt/FileDialog.java (addNotify): Call super.addNotify. * java/awt/Dialog.java (addNotify): Call super.addNotify. * java/awt/Choice.java (addNotify): Call super.addNotify. * java/awt/CheckboxMenuItem.java (addNotify): Call super.addNotify. * java/awt/Checkbox.java (addNotify): Call super.addNotify. * java/awt/List.java (replaceItem): Notify peer. * java/awt/geom/Rectangle2D.java (Float.setRect(float,float,float,float)): New method. * java/awt/event/ContainerEvent.java (getContainer): Now returns Container. * java/awt/RenderingHints.java (Key): Class now public. * java/awt/Rectangle.java (Rectangle): Now implements Serializable. (getPathIterator): Removed. * java/awt/GraphicsConfiguration.java (GraphicsConfiguration): New constructor. * java/awt/FileDialog.java: Wrote. * java/awt/EventQueue.java (isDispatchThread): Now public. (invokeLater): Likewise. * java/awt/Component.java (setCursor): Update peer. (getFontMetrics): Use peer. * java/awt/ComponentOrientation.java (ComponentOrientation): Class now final. 2001-04-20 Tom Tromey * java/awt/List.java: Wrote. * java/awt/Dialog.java: Wrote. 2001-04-20 Warren Levy * java/lang/natSystem.cc (getSystemTimeZone): Adjust for DST. * java/text/SimpleDateFormat.java (indexInArray): Removed private method. (processYear): Removed private method. (parseLenient): Removed private method. (parseLeadingZeros): Removed private method. (parseStrict): Removed private method. (expect): Added new private method. (parse): Reverted to pre-Classpath merge version with minor fixes. * java/util/natGregorianCalendar.cc (computeTime): Handle strict calendars. 2001-04-12 Bryce McKinlay * java/io/File.java (normalizePath): New private method. (File (String)): Use normalizePath(). (File (String, String)): Likewise. * Makefile.am (libffi_files): Removed. (libgcj.la): Link libffi as a convenience library instead of refering to its object files directly. * Makefile.in: Rebuilt. 2001-04-08 Per Bothner * java/lang/natString.cc (_Jv_NewStringUtf8Const): Register finalizer. Recalculate hash, since Utf8Const's hash is only 16 bits. * java/lang/natString.cc (_Jv_StringFindSlot, rehash): Use high-order bits of hash to calculate step for chaining. * java/lang/natString.cc (intern, _Jv_NewStringUtf8Const): Rehash when 2/3 full, rather than 3/4 full. 2001-04-06 Tom Tromey * jni.cc (wrap_value, wrap_value): Removed. (wrap_value): New specialization. (_Jv_JNI_PopLocalFrame): Update env->locals. 2001-04-05 Tom Tromey * libtool-version: Updated current. 2001-04-04 Andreas Jaeger * gcj/Makefile.am (AUTOMAKE_OPTIONS): Remove no-installinfo. * gcj/Makefile.in: Rebuilt. * Makefile.am (AUTOMAKE_OPTIONS): Remove no-installinfo. * Makefile.in: Rebuilt. * testsuite/Makefile.am (AUTOMAKE_OPTIONS): Remove no-installinfo. * testsuite/Makefile.in: Rebuild. * include/Makefile.am (AUTOMAKE_OPTIONS): Remove no-installinfo. * include/Makefile.in: Rebuild. 2001-04-02 Zack Weinberg * testsuite/lib/libjava.exp: Correct typo: 'output from source compiled test', not 'execution from source compiled test'. Use UNTESTED, not XFAIL, for tests which are not run because they depend on a previous test which failed. 2001-04-02 Richard Henderson * configure.in (GCC_UNWIND_INCLUDE): Assume we're built within the same tree as gcc. * configure: Rebuilt. * exception.cc (_Jv_Throw): Clarify commentary. 2001-04-02 Marcus G. Daniels * jni.cc (wrap_value): New specialization. 2001-04-02 Tom Tromey * java/io/PrintStream.java (out): Removed field. Fixes PR java/2449. (write): Call flush, not out.flush, per spec. (close): Flush output stream, per spec. Handle InterruptedIOException. (checkError): Likewise. (flush, print, write): Handle InterruptedIOException per spec. (PrintStream): Don't create BufferedOutputStream. (work_bytes): New field. (writeChars): Use work_bytes. Don't assume `out' is a BufferedOutputStream. 2001-04-02 Torsten Rueger * java/text/MessageFormat.java (setLocale): Added missing `else'. For PR libgcj/2429. 2001-03-30 Tom Tromey * jni.cc (add_char): Correctly encode non-ascii characters. (add_char): Define even when INTERPRETER not defined. (mangled_name): Likewise. (_Jv_GetJNIEnvNewFrame): Likewise. (_Jv_LookupJNIMethod): Likewise. 2001-03-23 Kevin B Hendricks * configure.host: Enable interpreter for PPC. 2001-04-02 Bryce McKinlay * java/lang/natSystem.cc (init_properties): Revert yesterday's changes to "file.separator", "path.separator", and "java.io.tmpdir" property initialization. * java/io/File.java: Likewise. * java/io/natFile.cc (init_native): Likewise. * java/io/natFileWin32.cc (init_native): Likewise. 2001-04-01 Per Bothner * java/lang/natString.cc (intern): If string's data does not point to this String, make a fresh String that does. * java/lang/natString.cc (unintern): Replace by static function. * java/lang/String.java (unintern): Remove method. 2001-04-01 Per Bothner * DeflaterOutputStream.java (deflate): Loop while def.needsInput. (finish): def.deflate needs to be called in a loop. (inbuf, inbufLength): New private fields. (write(int)): Use inbuf. (write(byte[],int,int): Check if pending output in inbuf. * ZipOutputStream.java: Don't use Deflater if stored. Use a Checksum object directly, not via a CheckedOutputStream. (uncompressed_size): New field, (closeEntry): Only write data_directory if needed. (write): If STORED, write directly. Always update crc, and uncompressed_size. (write_entry): Fix lots of protocol erors. 2001-04-01 Bryce McKinlay 1.3-Compliant Implementation of java.io.File. * java/lang/natSystem.cc (init_properties): Get "file.separator", "path.separator", and "java.io.tmpdir" from the File class, instead of setting them explicitly. * java/io/File.java: Do not canonicalize paths for security manager checks. Call init_native() from static initializer. Do not pass path argument to native methods. New native method declarations. Some security manager checks moved to checkWrite(). (equals): Check file system case sensitivity and act appropriatly. (hashCode): Likewise. (isHidden): New method implemented. (performList): Changed prototype. Now takes a class argument specifying the class of the returned array: Strings or File objects. Also added FileFilter argument. (listFiles): New variants with "File" return type implemented. (createTempFile): Use createNewFile(). Use maxPathLen. (setReadOnly): New method implemented. (listRoots): Likewise. (compareTo): Likewise. (setLastModified): Likewise. (checkWrite): New method. (setPath): Removed. * java/io/natFile.cc: Various functions no longer take canonical path argument. (stat): Handle ISHIDDEN query. (isAbsolute): Remove WIN32 cruft. (performList): New arguments. Handle returning either File[] or String[] arrays. Check with FileFilter or FilenameFilter arguments as appropriate. Use an ArrayList, not a Vector, for the temporary list. (performSetReadOnly): New method implemented. (performListRoots): Likewise. (performSetLastModified): Likewise. (performCreate): Likewise. (init_native): New initialization function. * java/io/natFileWin32.cc: Various functions no longer take canonical path argument. (stat): Add FIXME about ISHIDDEN query. (performList): New arguments. Handle returning either File[] or String[] arrays. Check with FileFilter or FilenameFilter arguments as appropriate. Use an ArrayList, not a Vector, for the temporary list. (performSetReadOnly): New. Stubbed. (performListRoots): Likewise. (performSetLastModified): Likewise. (performCreate): Likewise. (init_native) New initialization function. * configure.in: Check for utime() and chmod(). * configure: Rebuilt. * include/config.h.in: Rebuilt. Resolves PR libgcj/1759. 2001-03-28 Richard Henderson IA-64 ABI Exception Handling: * Makefile.am (GCC_UNWIND_INCLUDE): Rename from EH_COMMON_INCLUDE. (AM_CXXFLAGS): -fnon-call-exceptions not -fasynchronous-exceptions. Remove EXCEPTIONSPEC. * configure.host (libgcj_sjlj): Remove. * configure.in (EXCEPTIONSPEC): Remove. (enable-sjlj-exceptions): Detect if not specified. (GCC_UNWIND_INCLUDE): Rename from EH_COMMON_INCLUDE; change what header we're looking for. * libgcj.spec.in (jc1): Remove EXCEPTIONSPEC. * Makefile.in, configure: Regenerate. * exception.cc: Don't declare libgcc2 stuff. (java_eh_info, _Jv_type_matcher, _Jv_exception_info): Remove. (_Jv_eh_alloc, _Jv_eh_free, _Jv_setup_eh_info): Remove. (win32_get_restart_frame): Remove. (struct java_exception_header): New. (__gcj_exception_class): New. (get_exception_header_from_ue): New. (_Jv_Throw): Rewrite for IA-64 ABI unwind routines. (size_of_encoded_value, read_encoded_value): New. (read_uleb128, read_sleb128, parse_lsda_header): New. (get_ttype_entry, __gcj_personality_sj0): New. * gcj/javaprims.h (_Jv_Sjlj_Throw): Remove. 2001-03-27 Joerg Brunsmann * javax/naming/InitialContext.java (init): Fix typo. (composeName): Remove unnecessary semicolon. (addToEnvironment): Remove unnecessary semicolon. (addToEnvironment): Use put() instead of add(). * javax/naming/InitialContext.java (InitialContext): Make public. (destroySubcontext): Method doesn't return a result. * javax/naming/Context.java: Import java.util.Hashtable. * javax/naming/Name.java: Import java.util.Enumeration. 2001-03-27 Bryce McKinlay * Makefile.am (libffi_files): Use 'find' to pick up libffi libtool objects in subdirectories. * Makefile.in: Rebuilt. 2001-03-25 Richard Henderson * 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. 2001-03-24 Bryce McKinlay * java/util/HashMap.java (HashMap): If 0 is given for initialCapacity paramater, bump it to 1. * java/util/Hashtable.java (Hashtable): Likewise. 2001-03-23 Per Bothner * java/lang/natDouble.cc (parseDouble): Cannot use errno to check for errors, since we don't want to throw exception on overflow/underflow. Instead, trim whitespace, and then check that _strtod_r uses up all the rest of the string. * java/lang/natClass.cc (_Jv_IsAssignableFrom): Checking the ancestors array is invalid for interfaces, so do that *after* check that the target type is not an interface. 2001-03-23 Jeff Sturm * prims.cc (_Jv_FindClassFromSignature): Check return of recursive call. Do not abort on invalid signature; return NULL instead. 2001-03-22 Tom Tromey * 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. 2001-03-23 Bryce McKinlay Fix for PR libgcj/1736. Thanks to Robert Boehne and Alexandre Oliva for libtool hacking. * Makefile.am (libgcj.la): New explicit rule. Echo the list of objects to a temporary file, then invoke libtool with the -objectlist paramater. (libgcjx.la): Likewise. * Makefile.in: Rebuilt. 2001-03-22 Joerg Brunsmann * javax/naming/Context.java (SECURITY_CREDENTIALS): Fix typo. 2001-03-22 Marcus G. Daniels * jni.cc (add_char): Handle `.' like `/'. 2001-03-22 Bryce McKinlay * java/lang/reflect/Method.java (getExceptionTypes): Call getType() to initialize if exception_types is null. * java/lang/reflect/Constructor.java: Likewise. * java/lang/reflect/natConstructor.cc (getType): Initialize exception_types to an empty Object array. 2001-03-21 Tom Tromey * configure: Rebuilt. * configure.in (GCJFLAGS): Subst. * Makefile.in: Rebuilt. * Makefile.am (jv_convert_LDFLAGS): Added -shared-libgcc. (gij_LDFLAGS): Likewise. (JC1FLAGS): Added GCJFLAGS and removed -g. * java/io/natFileDescriptorPosix.cc (open): Add O_CREAT in read/write case. Fixes PR libgcj/2338. 2001-03-20 Warren Levy * java/util/TimeZone.java: Sync up with Classpath. Includes new and corrected SimpleTimeZone's for the timezones hash table. 2001-03-19 Per Bothner * java/net/URLStreamHandler.java (parseURL): Fix bug which would "canonicalize" "../../xxx" to "/xxx". 2001-03-19 Mark Wielaard * java/util/ArrayList.java: Remove RCS keywords from comments * java/util/BasicMapEntry.java: idem * java/util/Dictionary.java: idem * java/util/HashSet.java: idem * java/util/EventObject.java: reindent * java/util/Properties.java: idem * java/util/SortedMap.java: idem * java/util/Enumeration.java: Merge with Classpath * java/util/EventListener.java: idem * java/util/Observable.java: idem * java/util/Observer.java: idem * java/util/Stack.java: idem 2001-03-17 Tom Tromey * java/lang/natString.cc (rehash): Don't bother with memset; _Jv_AllocBytes returns zero'd memory. Use _Jv_AllocBytesChecked. Use UNMASK_PTR. (UNMASK_PTR): New macro. (intern): Unmask pointer before returning it. Register finalizer for the string. (unintern): Handle case where (MASK_PTR): New macro. (PTR_MAKSED): Likewise. (_Jv_NewStringUtf8Const): Use UNMASK_PTR. 2001-03-01 Andrew Haley * java/lang/natThrowable.cc (printRawStackTrace): Copy the stackTrace buffer to a correctly aligned pointer array. 2001-03-12 Bryce McKinlay * java/lang/Runtime.java (_exit): Declare new package-private native. * java/lang/natRuntime.cc (_exit): Implemented. Same as exit() but without a security manager check. (exit): Call _exit after security check. * prims.cc (JvRunMain): Call Runtime._exit to shutdown the runtime "naturally". * java/lang/System.java (setSecurityManager): If a security manager is already in place, call checkPermission. * java/lang/ThreadGroup.java (uncaughtException): If printStackTrace() throws an exception, try to deal with it gracefully. * java/lang/ExceptionInInitializerError.java (printStackTrace): Only try to print the subordinate stack trace if "exception" is set. Print our class name first. 2001-03-08 Tom Tromey * java/io/ObjectStreamClass.java (setUID): Don't write interface info for array classes. Fixes PR libgcj/1971. 2001-03-06 Bryce McKinlay * java/util/TreeSet.java (writeObject): Use a for-loop instead of Iterator.hasNext(). 2001-03-05 Jochen Hoenicke * java/util/TreeMap.java (writeObject): Use defaultWriteObject() instead of the new JDK1.2 API. This is simpler and makes back-porting the classes to JDK1.1 trivial. (readObject): likewise. 2001-03-01 Per Bothner Changes merged from Kawa's gnu.math. * gnu/gcj/math/MPN.java (rshift0): New method handles zero shift count. (rshift(int[],int[],int,int): Removed - not needed. (gcd): Use rshift0 rather than rshift. * java/math/BigInteger.java (setShiftRight): Likewise. (divide): Simplify by using rshift0. (divide): Zero-extend results if high-order bit set. 2001-02-27 Bryce McKinlay * libgcj.spec.in: Insert %(libgcc) before %(liborig) to fix static linking. 2001-02-23 Per Bothner Change to sometimes include class name in ClassFormatError message. * defineclass.cc (_Jv_VerifyFieldSignature, _Jv_VerifyMethodSignature, _Jv_VerifyIdentifier, _Jv_VerifyClassName (two overlods)): Return boolean instead of throwing ClassFormatError on failure. (throw_class_format_error): Change static function to method. (_Jv_ClassReader): New inline methods verify_identifier, two overloads of verify_classname, verify_field_signature, and verify_method_signature * include/java-interp.h: Update declarations to return bool. * java/lang/natClassLoader.cc (defineClass0): Explicitly throw ClassFormatError since _Jv_VerifyClassName now returns bool. 2001-02-23 Per Bothner * java/lang/Throwable.java (CPlusPlusDemangler): Pass -s java to c++filt to select java-style output. 2001-02-22 Bryce McKinlay Fix for PR java/2040: * java/util/HashMap.java (HashMap): Don't throw exception for loadFactor > 1. Add exception messages. * java/util/Hashtable.java (Hashtable): Likewise. 2001-02-21 Bryce McKinlay Disable libgcjx by default. * configure.in: Add support for --enable-java-awt configure option. Use --enable-java-awt=xlib to build the xlib peers (libgcjx). * Makefile.am: Make libgcjx conditional on XLIB_AWT, instead of NO_X. * Makefile.in: Rebuilt. * configure: Rebuilt. 2001-02-20 Tom Tromey * java/io/PipedWriter.java (flush): Throw exception if stream closed. * java/io/OutputStreamWriter.java (write): Throw exception if stream closed. (writeChars): Don't throw exception if stream closed. * java/io/CharArrayWriter.java (closed): New field. (close): Set it. (flush): Throw exception if stream closed. (reset): Synchronize on correct lock. Allow stream to be reopened. (toCharArray, toString, writeTo): Synchronize. (write): Throwe exception if stream closed. * java/io/BufferedWriter.java (close): Clear `buffer'. (flush): Throw IOException if stream is closed. (write): Likewise. 2001-02-16 Tom Tromey * java/lang/ThreadGroup.java (activeCount): Only include threads which are alive. (enumerate): Likewise. 2001-02-19 Bryce McKinlay * java/lang/Integer.java (getInteger): Return default argument if property is not set. Don't call decode with null argument. * java/lang/Long.java (getLong): Likewise. * java/io/CharArrayReader.java (CharArrayReader): Throw IllegalArgumentException if constructor arguments are illegal. (ready): Return false if no more characters can be read. * java/io/ByteArrayInputStream.java (ByteArrayInputStream): Likewise. 2001-02-17 Mark Wielaard * java/util/TimerTask.java: New version from Classpath. 2001-02-17 Mark Wielaard Remerge with Classpath (changes by Bryce McKinlay ) * java/io/DataInputStream.java (readBoolean): Use convertToBoolean(). (readByte): Use convertToByte(). (readChar): Use convertToChar(). (readInt): Use convertToInt(). (readLong): Use convertToLong(). (readShort): Use convertToShort(). (readUnsignedByte): Use convertToUnsignedByte(). (readUnsignedShort): Use convertToUnsignedShort(). (readUTF): Use convertToUTF(). (convertToBoolean): Resurrected. (convertToByte): Ditto. (convertToChar): Ditto. (convertToInt): Ditto. (convertToLong): Ditto. (convertToShort): Ditto. (convertToUnsignedByte): Ditto. (convertToUnsignedShort): Ditto. (convertToUTF): Ditto. 2001-02-17 Mark Wielaard * HACKING: new file 2001-02-17 Mark Wielaard * java/io/DataInputStream.java: update copyright notice * java/io/PrintWriter.java: idem * java/io/Reader.java: idem * java/io/StreamTokenizer.java: idem * java/io/StringReader.java: idem * java/lang/reflect/ReflectPermission.java: idem 2001-02-16 Bryce McKinlay * java/util/TreeSet.java (clone): Made subclass safe, use super.clone(), not new. * java/util/TreeMap.java (clone): Likewise. * java/util/TreeMap.java (nil): Made non-final. (clone): Create new nil node for copy. * java/util/HashSet.java (clone): Made subclass safe, use super.clone(), not new. 2001-02-14 Andrew Haley * include/i386-signal.h (INIT_SEGV): Use a direct system call to set the handler. 2001-02-15 Anthony Green * defineclass.cc: Don't include alloca.h. (prepare_pool_entry): Convert alloca to __builtin_alloca. * interpret.cc (run_normal): Ditto. (continue1): Ditto. * java/lang/natDouble.cc (parseDouble): Ditto. 2001-02-15 Bryce McKinlay * java/util/TreeSet.java (clone): Call TreeMap.clone(), not Object.clone(). * java/util/Collections.java (ReverseComparator): New static class. (reverseOrder): Return static instance of ReverseComparator. * gnu/awt/j2d/DirectRasterGraphics.java (clone): Hoist to public. * gnu/awt/j2d/IntegerGraphicsState.java (setClip): Call Rectangle.clone(), not Object.clone(). * java/util/HashSet.java (clone): Remove try/catch. * java/util/AbstractSequentialList.java: Synchronize with Classpath. * java/util/Collection.java: Likewise. * java/util/Comparator.java: Likewise. * java/util/Dictionary.java: Likewise. * java/util/Iterator.java: Likewise. * java/util/ListIterator.java: Likewise. * java/util/Map.java: Likewise. * java/util/Set.java: Likewise. 2001-02-14 Bryce McKinlay * java/util/TreeMap.java: New file. * java/util/TreeSet.java: New file. * Makefile.am: Add TreeMap and TreeSet. Enable WeakHashMap. * Makefile.in: Rebuilt. * java/util/HashSet.java (clone): Use constructor instead of calling clone on itself. * java/util/SortedSet.java: Sync with classpath. * java/util/HashMap.java (hash): Use if statement instead of ternary, for clarity. * java/lang/natClass.cc (getSignature): Don't try to dereference param_types if it is null. Instead, take this to mean "no parameters". * java/lang/TreeMap.java (TreeIterator.next): Throw NoSuchElementException in preference to ConcurrentModificationException. (TreeIterator.remove): Throw IllegalStateException in preference to ConcurrentModificationException. (SubMap.firstKey): Do a better check for empty SubMap, and if it is, throw a NoSuchElementException. (SubMap.lastKey): Likewise. 2001-02-13 Tom Tromey * java/io/PipedReader.java (ready): Throw IOException if pipe closed. * java/io/FilterReader.java (close): Don't clear `in'. * java/io/CharArrayReader.java (mark): Throw IOException if stream closed. (read, ready, reset, skip): Added exception message. * java/io/BufferedReader.java (mark, reset, ready, read, skip): Perform checkStatus check inside synchronized block. 2001-02-13 Tom Tromey * gnu/awt/j2d/AbstractGraphicsState.java (clone): Made public. 2001-02-13 Tom Tromey Fix for PR libgcj/1351: * posix.cc (_Jv_select): Throw InterruptedIOException if thread is interrupted. Include Thread.h and InterruptedIOException.h. 2001-02-13 Bryce McKinlay * java/io/BlockDataException.java: Removed. * java/io/ObjectInputStream.java (readObject): Throw StreamCorruptedException, not BlockDataException. * Makefile.am: Remove BlockDataException. * Makefile.in: Rebuild. 2001-02-12 Jeff Sturm Tom Tromey * interpret.cc (continue1): [insn_invokevirtual] Do an explicit null pointer check. 2001-02-09 Tom Tromey * java/util/Timer.java: New version from Classpath. 2001-02-09 Bryce McKinlay * java/lang/Double.java (doubleToRawLongBits): Now native. * java/lang/Float.java (floatToRawIntBits): Likewise. * java/lang/natDouble.cc (doubleToRawLongBits): New method. * java/lang/natFloat.cc (floatToRawIntBits): Likewise. 2001-02-09 Alexandre Petit-Bianco * java/io/File.java (java.net): Imported. (getAbsoluteFile): Added. (getCanonicalPath): Likewise. (toURL): Likewise. 2001-02-08 Bryce McKinlay * java/lang/Byte.java: Remove redundant instanceof and null checks. * java/lang/Integer.java: Likewise. * java/lang/Long.java: Likewise. * java/lang/Short.java: Likewise. * java/lang/Double.java: Likewise. (doubleToRawLongBits): New method. * java/lang/Float.java: As above. (floatToRawIntBits): New method. * java/io/OutputStreamWriter.java: (flush, writeChars): Throw IOException if stream closed. 2001-02-08 Tom Tromey * java/lang/Float.java (parseFloat): New method. 2001-02-08 Tom Tromey From paul@dawa.demon.co.uk. Fix for PR libgcj/1913: * java/io/InputStreamReader.java (ready, read): Throw IOException if stream has been closed. 2001-02-08 Joseph S. Myers * README, gij.cc, java/lang/natClass.cc, java/lang/natSystem.cc: Change sources.redhat.com and sourceware.cygnus.com references to gcc.gnu.org. 2001-02-07 Tom Tromey Fix for PR libgcj/1906: * java/text/MessageFormat.java (setLocale): Use named class literals. (forName): Removed. (format(Object,StringBuffer,FieldPosition)): Special case if argument is an Object[]. 2001-02-07 Bryce McKinlay * java/util/Arrays.java: Removed "cmp" methods. (qsort): Don't use "cmp". (med3): Likewise. 2001-02-07 Mark Benvenuto * java/util/Arrays.java (qsort): Handle N value of 7 with insertion sort. Fix for PR java/1895. 2001-02-03 Jeff Sturm * configure.host: Use sjlj-exceptions for Alpha. 2001-02-03 Bryce McKinlay * libgcj.spec.in: Don't force static libgcc into the executable. * configure.in (FORCELIBGCCSPEC): Removed. * configure: Rebuilt. 2001-01-31 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (LTCXXCOMPILE): New macro. 2001-01-26 Andrew Haley (INIT_FPE): Use a direct system call to set the handler. 2001-01-27 Richard Henderson * configure.host (alpha*-*) [libgcj_flags]: Add -mieee. 2001-01-27 Tom Tromey * jni.cc (_Jv_JNIFunctions): Added comment for each entry in native interface structure. 2001-01-27 Bryce McKinlay * java/io/ObjectInputStream.java (read): AND byte with 0xff to make result unsigned. (read (byte[], int, int)): Only call readNextBlock() if the block buffer would actually be overrun. Increment blockDataPosition. (callReadMethod): Propagate exceptions from invocation target. * java/io/ObjectOutputStream.java (callWriteMethod): Propagate exceptions from invocation target. 2001-01-26 Tom Tromey * jni.cc (_Jv_JNI_GetAnyMethodID): Rewrite signature from external to internal representation. (_Jv_JNI_GetAnyFieldID): Likewise. Also, only use _Jv_FindClassFromSignature. 2001-01-26 Warren Levy * java/lang/natSystem.cc (getSystemTimeZone): Only use tm_gmtoff and timezone if they are available on the system. 2001-01-24 Tom Tromey * java/lang/sf_fabs.c: Use uint32_t, not __uint32_t. 2001-01-24 Tom Tromey * Makefile.in: Rebuilt. * Makefile.am (c_source_files): Added sf_fabs.c. * java/lang/sf_fabs.c: New file. 2001-01-19 Warren Levy * java/text/SimpleDateFormat.java (format): Compute hour for cases HOUR_OF_DAY1_FIELD (1-24), HOUR1_FIELD (1-12), and HOUR0_FIELD (0-11) correctly. Adjust properly from 0-23 clock hour. 2001-01-17 Mark Wielaard * java/bean/Beans.java (instantiate): enable Applet code from Classpath 2001-01-17 Bryce McKinlay * java/lang/Class.h (isInterface): Move implementation from natClass.cc. Declare inline. (Class): Add default constructor. * java/lang/Object.h: Update comments. * java/lang/natClass.cc (initializeClass): Use _Jv_InitClass to initialize superclass, saving a call if super is already initialized. 2001-01-16 Alexandre Petit-Bianco * prims.cc (init_prim_class): Deleted. (DECLARE_PRIM_TYPE): Rewritten. * java/lang/Class.h (stdio.h): Include removed. (stddef.h): Included. (java/lang/reflect/Modifier.h): Likewise. (Class): Contructor now takes arguments, initializes fields. (initializePrim): Prototype deleted. * java/lang/natClass.cc (initializePrim): Deleted. 2001-01-16 Warren Levy * java/math/BigInteger.java: Update Copyright year. 2001-01-16 Hans Boehm * java/math/BigInteger.java (setShiftRight): Only do negative shift if count != 0. 2001-01-14 Mark Wielaard * java/net/URLDecoder.java: Thanks Edgar Villanueva (edgarvil@home.com) (decode): Merge comments with Classpath, don't throw Exception 2001-01-12 Tom Tromey * gnu/awt/gtk/natGtkComponentPeer.cc (getLocationOnScreen): Wrote. (setCursor): Wrote. Include Cursor.h. * gnu/awt/gtk/natGtkLabelPeer.cc: New file. * gnu/awt/gtk/natGtkButtonPeer.cc: New file. * gnu/awt/gtk/gtkcommon.h (class _Jv_GdkThreadLock): New class. * gnu/awt/gtk/GtkLabelPeer.java: New file. * gnu/awt/gtk/GtkButtonPeer.java: New file. * java/lang/natSystem.cc: Include locale.h if it exists. * configure: Rebuilt. * configure.in: Check for locale.h. 2001-01-11 Tom Tromey * java/awt/Cursor.java (Cursor(String)): Set type to custom. (Cursor(int), getPredefinedCursor): Throw exception if argument invalid. 2001-01-03 Tom Tromey * gnu/awt/gtk/natGtkComponentPeer.cc (setCursor): Wrote. (getLocationOnScreen): Wrote. 2001-01-11 Bryce McKinlay * Makefile.am: Re-enable dependencies. * Makefile.in: Rebuilt. 2001-01-10 Warren Levy * java/math/BigDecimal.java (divide): Fixed comment. 2001-01-10 Warren Levy Fix for PR libgcj/1596: * java/math/BigDecimal.java (divide): Check newScale for validity. Ensure that BigInteger.pow() is called with a non-negative value. (setScale (int)): New public method. (setScale (int,int)): New public method. 2001-01-09 Oskar Liljeblad Fix for PR libgcj/1338: * java/io/StreamTokenizer.java (nextToken): Handle // and /* before commentChar. Fixed typos in comments. 2001-01-08 Warren Levy Fix for PR libgcj/1411: * Makefile.am: Removed java/util/natTimeZone.cc. * Makefile.in: Rebuilt. * gnu/gcj/text/LocaleData_en_US.java (zoneStringsDefault): Added missing localized timezone names. * java/lang/System.java (getDefaultTimeZoneId): New private method. * java/lang/natSystem.cc (getSystemTimeZone): New private method. (init_properties): Set user.timezone property. * java/text/DateFormatSymbols.java (zoneStringsDefault): Added default timezone names; removed non-standard ones. Use standard ID names per JCL. * java/util/Date.java (toGMTString): Removed zoneGMT variable. (UTC): Ditto. * java/util/TimeZone.java: Add standard ID names per JCL; removed non-standard ones. (getDefaultTimeZoneId): Removed. (zoneGMT): Removed. * java/util/natTimeZone.cc: Removed. 2001-01-08 Bryce McKinlay * java/lang/Class.h (_Jv_InitClass): Use __builtin_expect. (_Jv_NewArrayClass): Renamed from _Jv_FindArrayClass. (_Jv_GetArrayClass): New inline function. (arrayclass): New field. * prims.cc (_Jv_NewObjectArray): Use _Jv_GetArrayClass. Don't use _Jv_GetArrayElementFromElementType. (_Jv_NewPrimArray): Ditto. (_Jv_PrimClass constructor): Initialize "depth", "ancestors", and "idt" for completeness. Initialze "arrayclass" using _Jv_NewArrayClass. Set Modifier::ABSTRACT. * java/lang/natClassLoader.cc (_Jv_NewClass): Initialize "arrayclass". (_Jv_NewArrayClass): Renamed from _Jv_FindArrayClass. Now void. Now synchronized. Array classes are now referenced from elementClass->arrayclass. Don't use _Jv_FindClassInCache. Set array classes' accessibility flags correctly. Optimize so that all array classes share the same IDT. * java/lang/reflect/natArray.cc (newInstance): Use _Jv_GetArrayClass. * java/lang/reflect/natMethod.cc (_Jv_GetTypesFromSignature): Ditto. * java/lang/natClass.cc (_getFields): Increment offset. Prevent fields in superclasses from overwriting classes own fields. (_Jv_IsAssignableFrom): Check for NULL source idt instead of calling Modifier::isAbstract(). (null_idt): New static field. (_Jv_PrepareConstantTimeTables): Optimize case where class implements no interfaces. (_Jv_IndexOf): Made inline. * boehm.cc (_Jv_MarkObj): Mark "arrayclass" field. 2001-01-08 Tom Tromey Fix for PR java/1586: * Makefile.in: Rebuilt. * Makefile.am (AUTOMAKE_OPTIONS): Added no-dependencies. 2001-01-08 Bryce McKinlay * Makefile.am: Use the new "-M -MF" option for generating dependencies from the c++ compiler. * Makefile.in: Rebuilt. 2001-01-07 Alexandre Petit-Bianco All files with updated copyright. * prims.cc (class _Jv_PrimClass): Removed. (init_prim_class): New function. (DECLARE_PRIM_TYPE): Rewritten. `java::lang::Class' replaces `_Jv_PrimClass' in primitive type declarations. Assign to the value returned by `init_prim_class.' * gcj/array.h: `java::lang::Class' replaces `_Jv_PrimClass' in primitive type declarations. (JvPrimClass): Cast to `jclass' removed. * java/lang/Class.h (Class): New constructor. (Class): New copy constructor. (initializePrim): New prototype. (_Jv_PrimClass): Field removed. * java/lang/Object.h (struct _JvObjectPrefix): New virtuals nacd_1 and nacd_2 (for compatibility with the new C++ ABI.) (class java::lang::Object): `finalize' moved up front. * java/lang/natClass.cc (isAssignableFrom): Turned outline. (isInstance): Likewise. (isInterface): Likewise, fixed indentation. (initializePrim): New function. 2001-01-07 Anthony Green * Makefile.am (texinfo): Add texinfo target for generating texinfo documentation. * Makefile.in: Rebuilt. * scripts/TexinfoDoclet.java: New file. * doc/java-applet.texi, doc/java-lang-reflect.texi, doc/java-awt-color.texi, doc/java-lang.texi, doc/java-awt-datatransfer.texi, doc/java-math.texi, doc/java-awt-event.texi, doc/java-net.texi, doc/java-awt-geom.texi, doc/java-security-spec.texi, doc/java-awt-image.texi, doc/java-security.texi, doc/java-awt-peer.texi, doc/java-sql.texi, doc/java-awt.texi, doc/java-text.texi, doc/java-beans-beancontext.texi, doc/java-util-jar.texi, doc/java-beans.texi, doc/java-util-zip.texi, doc/java-io.texi, doc/java-util.texi, doc/java-lang-ref.texi: New files. 2001-01-07 Anthony Green * java/net/URLConnection.java (setDoOutput): URLConnection's may be used for both input and output, so don't clear doInput. * java/lang/StringBuffer.java: Fix comments. 2001-01-06 Anthony Green * java/beans/PropertyDescriptor.java: Fix comment. * java/io/PushbackReader.java: Fix comment. * java/io/ObjectStreamClass.java: Fix comment. * java/io/DataInputStream.java: Fix comment. * java/io/PipedInputStream.java: Fix comments. * java/io/PipedReader.java: Fix comments. * java/sql/DatabaseMetaData.java: Fix comments. 2001-01-06 Bryce McKinlay * java/io/PipedReader: Synchronize on "lock" instead of this. 2001-01-05 Bryce McKinlay * java/lang/Thread.java: Update comment. * java/io/PipedInputStream: Rewrote to be simpler and more correct. * java/io/PipedOutputStream: Updated to match new PipedInputStream. * java/io/PipedReader: New implementation based on new PipedInputStream. * java/io/PipedWriter: Updated to match new PipedReader. 2001-01-03 Tom Tromey * java/awt/ScrollPane.java (setBlockIncrement): Throw error. (getViewportSize): Insets include scrollbar size. (doLayout): Finished. (getScrollPosition): Wrote. * java/awt/peer/ScrollPanePeer.java (setBlockIncrement): Removed. 2001-01-02 Tom Tromey * java/awt/ScrollPane.java: Wrote. * java/awt/peer/ScrollPanePeer.java (setBlockIncrement): New method. * java/awt/Panel.java (Panel()): Fixed. * java/awt/Component.java (isShowing): Return false if no peer exists, and true if component is visible and no parent exists. (getLocationOnScreen): Wrote. (getPreferredSize): Removed FIXME comment. (getMinimumSize): Likewise. (getAlignmentX, getAlignmentY): Wrote. (list): Wrote. (requestFocus): Wrote. (transferFocus): Wrote. (findNextFocusComponent): New method. (hasFocus()): Wrote. (checkImage): Wrote. (enableEvents): Call setEventMask on the peer. * java/awt/Container.java (list): Use super.list() to print self. (findNextFocusComponent): New method. (setLayout): Call invalidate. (findComponentAt): Wrote.