2000-07-23 Rolf W. Rasmussen <rolfwr@ii.uib.no>
* libjava/java/awt/image/ColorModel.java: New file, replaces the
stub libjava/java/awt/ColorModel.java which was located in the
wrong package.
* libjava/java/awt/image/ComponentColorModel.java: New file.
* libjava/java/awt/image/ComponentSampleModel.java: New file.
* libjava/java/awt/image/DataBuffer.java: New file.
* libjava/java/awt/image/DataBufferByte.java: New file.
* libjava/java/awt/image/DataBufferInt.java: New file.
* libjava/java/awt/image/DataBufferUShort.java: New file.
* libjava/java/awt/image/DirectColorModel.java: New file.
* libjava/java/awt/image/PackedColorModel.java: New file.
* libjava/java/awt/image/Raster.java: New file.
* libjava/java/awt/image/SampleModel.java: New file.
* libjava/java/awt/image/SinglePixelPackedSampleModel.java: New
file.
* libjava/java/awt/image/IndexColorModel.java: New file.
* libjava/java/awt/image/ImageConsumer.java: Removed import of
java.awt.ColorModel stub.
* gnu/gcj/util/BitMaskExtent.java: New file, utility class.
* gnu/gcj/util/Buffers.java: New file, utility class.
* libjava/Makefile.am: Updated to include new files.
* libjava/Makefile.in: Rebuilt.
From-SVN: r35245
* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Only
initialize String fields for interpreted classes. Fixes bug
reported by Hans Boehm.
From-SVN: r35150
* java/awt/image/ImageConsumer.java: New file.
* java/awt/image/ImageProducer.java: New file.
* java/awt/image/ImageObserver.java: New file.
From-SVN: r35000
* java/io/PrintWriter.java (print): Call write(String), not
print(String). See PR libgcj/277.
(print(String)): Use write, not out.write.
From-SVN: r34853
2000-06-27 Andrew Haley <aph@cygnus.com>
* java/io/File.java (createTempFile): Close the FileDescriptor
used to create a temp file. Fixes some of PR 203.
* java/io/natFileDescriptorPosix.cc (open): Call garbage
collection if we run out of file handles.
From-SVN: r34755
* gnu/java/security/provider/Gnu.java: New file.
* gnu/java/security/provider/SHA.java: New file.
* gnu/java/security/provider/SHA1PRNG.java: New file.
* Makefile.am: Added the above files.
* Makefile.in: Rebuilt.
* java/io/ObjectStreamClass.java (setUID): Use Gnu SHA instead of SHS.
From-SVN: r34753
* ThreadGroup.java: Added synchronized flag to many methods.
(destroyed_flag): Removed.
(isDestroyed, removeGroup, removeThread): Test for parent == null.
(activeCount): Added spec note.
From-SVN: r34750
* java/io/PushbackInputStream.java (read): If there are characters
in the buffer, don't also call super.read().
* java/io/PushbackReader.java (read): If there are characters in
the buffer, don't also call super.read().
From-SVN: r34745
2000-06-21 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/ThreadGroup.java (add(Thread)): Rename to addThread() to
comply with classpath VM spec.
(add(Group)): Rename to addGroup().
* java/lang/Thread.java (Thread): Use addThread().
* java/lang/natThread.cc (finish_): Use removeThread().
From-SVN: r34627
Fix for PR libgcj/261:
* include/win32-signal.h (MAKE_THROW_FRAME): Added `_exception'
argument.
* include/sparc-signal.h (MAKE_THROW_FRAME): Added `_exception'
argument. (This is a patch from long ago that somehow went
missing.)
From-SVN: r34575
Fix for PR java.lang/258:
* prims.cc (_Jv_PrimClass): Set state of primitive class to
JV_STATE_DONE, to prevent accidental initialization.
* java/lang/natClass.cc (_Jv_IsAssignableFrom): Call
_Jv_InterfaceAssignableFrom if target is an interface and source is
an interface or an abstract class. Remove redundant initializeClass
calls. Remove duplicate if_idt test.
(_Jv_InterfaceAssignableFrom): New function.
* java/lang/Class.h (_Jv_InterfaceAssignableFrom): Prototype.
From-SVN: r34563
Fix for PR java.lang/258:
* prims.cc (_Jv_PrimClass): Set state of primitive class to
JV_STATE_DONE, to prevent accidental initialization.
* java/lang/natClass.cc (_Jv_IsAssignableFrom): Call
_Jv_InterfaceAssignableFrom if target is an interface and source is
an interface or an abstract class. Remove redundant initializeClass
calls. Remove duplicate if_idt test.
* java/lang/Class.h (_Jv_InterfaceAssignableFrom): New function.
From-SVN: r34562
* include/name-finder.h: Include <sys/wait.h>.
(_Jv_name_finder::pid): Now of type `pid_t'.
(_Jv_name_finder::~_Jv_name_finder): Call waitpid().
* java/lang/Throwable.java (CPlusPlusDemangler.close): Call
`proc.waitFor()'.
From-SVN: r34279
* java/lang/StringBuffer.java (toString): Don't mark buffer as
shared.
(insert(int,char[],int,int): New method.
(delete): New method from Classpath.
(deleteCharAt): Likewise.
(substring): Likewise.
(shared): No longer private.
Added JavaDoc comments from Classpath.
* java/lang/String.java (String(StringBuffer)): Ensure `buffer' is
shared.
From-SVN: r33809
* gcj/field.h (JvFieldIsRef): Return false for gnu.gcj.RawData
field.
* boehm.cc (_Jv_MarkObj): Removed dead code. Use `STATIC', not
`0x0008'.
Include Modifier.h.
From-SVN: r33702
* java/io/PipedInputStream.java, java/io/PipedReader.java,
java/io/PipedOutputStream.java, java/io/PipedWriter.java: New
version from Classpath.
From-SVN: r33316
2000-04-19 Bryce McKinlay <bryce@albatross.co.nz>
* boehm.cc: (_Jv_MarkObj, _Jv_MarkArray): Cast pointers for
MAYBE_MARK to ptr_t, for compatibility with new GC version.
From-SVN: r33252
* java/io/ObjectStreamException.java: New file.
* java/io/OptionalDataException.java: New file.
* java/io/StreamCorruptedException.java: New file.
* java/math/BigDecimal.java: New file.
* java/sql/CallableStatement.java: New file.
* java/sql/Connection.java: New file.
* java/sql/DataTruncation.java: New file.
* java/sql/DatabaseMetaData.java: New file.
* java/sql/Date.java: New file.
* java/sql/Driver.java: New file.
* java/sql/DriverManager.java: New file.
* java/sql/DriverPropertyInfo.java: New file.
* java/sql/PreparedStatement.java: New file.
* java/sql/ResultSet.java: New file.
* java/sql/ResultSetMetaData.java: New file.
* java/sql/SQLException.java: New file.
* java/sql/SQLWarning.java: New file.
* java/sql/Statement.java: New file.
* java/sql/Time.java: New file.
* java/sql/Timestamp.java: New file.
* java/sql/Types.java: New file.
* Makefile.am: Added above new files.
* Makefile.in: Rebuilt.
* mauve-libgcj: Turned on java.math, java.sql and java.security tests.
* java/net/MulticastSocket.java (MulticastSocket): Pass values a la
DatagramSocket constructor instead of null.
java.sql is JDK 1.1 Compliant
From-SVN: r33077
2000-04-08 Anthony Green <green@cygnus.com>
* posix-threads.cc (_Jv_MutexLock): Moved back to posix-threads.h.
(_Jv_MutexUnlock): Ditto.
* include/posix-threads.h (_Jv_MutexLock): From posix-threads.cc.
(_Jv_MutexUnlock): Ditto.
From-SVN: r33037
2000-04-08 Anthony Green <green@cygnus.com>
* java/lang/StringBuffer.java (ensureCapacity): Don't call Math::max.
(ensureCapacity_unsynchronized): New private method.
(append): Use ensureCapacity_unsynchronized.
From-SVN: r33036
* Makefile.in: Rebuilt.
* Makefile.am (awt_java_source_files): Added new files.
* java/awt/IllegalComponentStateException.java: New file.
* java/awt/ItemSelectable.java: New file.
* java/awt/event/WindowEvent.java: Finished.
* java/awt/event/TextEvent.java: Finished.
* java/awt/event/ContainerEvent.java: New file.
* java/awt/Component.java (getX, getY): New methods.
* java/awt/event/PaintEvent.java: New file.
* java/awt/event/MouseEvent.java: New file.
* java/awt/ActiveEvent.java: New file.
* java/awt/event/KeyEvent.java: Finished.
* java/awt/event/ItemEvent.java: New file.
* java/awt/Adjustable.java: New file.
* java/awt/event/InputMethodEvent.java: New file.
* java/awt/event/InputEvent.java: Finished.
* java/awt/event/FocusEvent.java: New file.
* java/awt/event/MouseMotionAdapter.java: New file.
* java/awt/event/MouseAdapter.java: New file.
* java/awt/event/KeyAdapter.java: New file.
* java/awt/event/FocusAdapter.java: New file.
* java/awt/event/ContainerAdapter.java: New file.
* java/awt/event/ComponentEvent.java: Finished.
* java/awt/event/AdjustmentEvent.java: New file.
* java/awt/event/ComponentAdapter.java: New file.
* java/awt/event/ActionEvent.java: Finished.
* java/awt/event/MouseMotionListener.java: New file.
* java/awt/event/MouseListener.java: New file.
* java/awt/event/ItemListener.java: New file.
* java/awt/event/InputMethodListener.java: New file.
* java/awt/event/ContainerListener.java: New file.
* java/awt/event/FocusListener.java: New file.
* java/awt/event/ComponentListener.java: New file.
* java/awt/event/AWTEventListener.java: New file.
* java/awt/event/AdjustmentListener.java: New file.
From-SVN: r33034
2000-04-08 Anthony Green <green@redhat.com>
* java/lang/natObject.cc (_Jv_MonitorEnter): Only perform null
check when we have to.
* gcj/array.h: Mark elements(JArray<T>& x) and elements(JArray<T>*
x) as `inline'.
* java/util/StringTokenizer.java: Minor optimization. Eliminates
one method call.
* java/util/Vector.java (VectorEnumeration.nextElement): Manually
inline hasMoreElements.
From-SVN: r33033
* Makefile.in: New #defines and friends for Thread.h.
* posix-threads.cc: (struct starter): Remove `object'.
(_Jv_CondWait): Use interruptable condition variables and new
recursive mutexes. New return codes on interrupt or non-ownership
of mutex.
(_Jv_CondNotify): Ditto.
(_Jv_CondNotifyAll): Ditto.
(_Jv_ThreadInterrupt): Set thread interrupt flag directly. Interrupt
the target thread by signaling its wait condition.
(_Jv_ThreadInitData): Set `thread_obj' in the thread data struct,
not the starter struct. Initialize wait_mutex and wait_cond.
(_Jv_MutexLock): New recursive mutex implementation. Moved from
posix-threads.h.
(_Jv_MutexUnlock): Ditto.
(really_start): Set info->data->thread from pthread_self() to work
around a race condition. Destroy wait_mutex and wait_cond when run()
returns.
* java/lang/Thread.java: (isInterrupted_): Renamed to overloaded
`isInterrupted(boolean)'. Clear interrupted flag if clear_flag is
set.
startable_flag: New private field.
(Thread): Initialize `startable_flag'.
(toString): Check for null thread group.
* java/lang/natThread.cc: (struct natThread): New fields
`join_mutex', `join_cond'. Removed fields `joiner', `next'.
(class locker): Removed.
(initialize_native): Initialize `join_cond' and `join_mutex'.
(interrupt): Now just calls _Jv_ThreadInterrupt().
(join): Simplified. Just wait on the target thread's join condition.
(finish_): Remove join list code. Unset thread group. Signal
potential joiners by notifying the dying threads join_cond.
(start): Check for illegal restarts.
* java/lang/natObject.cc: Check for return value of _Jv_CondWait and
act appropriatly.
* include/posix-threads.h: Remove all HAVE_RECURSIVE_MUTEX related
#defines and #ifdefs.
(struct _Jv_Thread_t): New fields `thread_obj', `wait_cond',
`wait_mutex', `next'.
(struct _Jv_ConditionVariable_t): Define as a struct instead of
directly mapping to pthread_cond_t.
(struct _Jv_Mutex_t): New recursive implementation.
(_Jv_PthreadCheckMonitor): Reimplemented. Simple `owner' check.
_Jv_HaveCondDestroy: Never define this for posix-threads.
(_Jv_CondNotify): Remove inline implementation(s), prototype instead.
(_Jv_CondNotifyAll): Ditto.
(_Jv_MutexLock): Ditto.
(_Jv_MutexUnlock): Ditto.
(_Jv_MutexInit): Changed to reflect new mutex implementation.
(_Jv_MutexDestroy): Ditto.
(_Jv_CondDestroy): Removed.
(_Jv_PthreadGetMutex): Removed.
* include/win32-threads.h: (_Jv_CondNotify): Guess _JV_NOT_OWNER on an
error. Add a FIXME about this.
(_Jv_CondNotifyAll): Ditto.
* win32-threads.cc: (_Jv_CondWait): Return 0 on a timeout. Guess
_JV_NOT_OWNER on other errors. Add FIXME.
From-SVN: r32773
2000-03-26 Tom Tromey <tromey@cygnus.com>
* java/lang/mprec.h: Use SIZEOF_VOID_P.
* interpret.cc: Use SIZEOF_VOID_P.
* include/java-cpool.h (_Jv_storeLong): Use SIZEOF_VOID_P.
(_Jv_loadLong): Likewise.
(_Jv_storeDouble): Likewise.
* configure: Rebuilt.
* configure.in: Check size of void*.
* resolve.cc (ncode): Use FFI_PREP_RAW_CLOSURE and FFI_RAW_SIZE.
2000-03-26 Hans Boehm <boehm@acm.org>
* include/java-cpool.h (_Jv_storeLong, _Jv_loadLong,
_Jv_storeDouble, _Jv_loadDouble): Define differently on 64 bit
machine.
* java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN or
__IEEE_LITTLE_ENDIAN appropriately on IA64.
* java/lang/mprec.h: Don't define Pack_32 on 64 bit machine.
* javaprims.h (_Jv_word): Added `l' and `d' entries in 64 bit
case.
* resolve.cc (FFI_PREP_RAW_CLOSURE): New define.
(FFI_RAW_SIZE): Likewise.
(_Jv_InterpMethod::ncode): Use them.
* interpret.cc (PUSHL, PUSHD, POPL, POPD, LOADL, LOADD, STOREL,
STORED): Define differently on a 64 bit machine.
(continue1): Use ffi_java_raw_call when appropriate.
From-SVN: r32754
* java/math/BigInteger.java(divide): Handle the special case when
dividing by 1 and the high bit of the dividend is set.
(setShiftRight): Handle case when count == 0.
From-SVN: r32724
2000-03-21 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/natClass.cc (isInstance): Initialize `this'.
(isAssignableFrom): Initialize `this' and `klass'.
(_Jv_IsAssignableFrom): If an interface has no idt, it is not
implemented by any loaded class, so return false.
From-SVN: r32663
* java/security/Key.java(serialVersionUID): Set to 0 for now.
* java/security/interfaces/DSAPrivateKey.java(serialVersionUID): Ditto.
* java/security/interfaces/DSAPublicKey.java(serialVersionUID): Ditto.
From-SVN: r32464
* java/security/AlgorithmParameterGeneratorSpi.java: New file.
* java/security/DigestException.java: New file.
* java/security/GeneralSecurityException.java: New file.
* java/security/InvalidAlgorithmParameterException.java: New file.
* java/security/InvalidKeyException.java: New file.
* java/security/InvalidParameterException.java: New file.
* java/security/Key.java: New file.
* java/security/KeyException.java: New file.
* java/security/KeyPair.java: New file.
* java/security/KeyPairGenerator.java: New file.
* java/security/KeyPairGeneratorSpi.java: New file.
* java/security/NoSuchProviderException.java: New file.
* java/security/PrivateKey.java: New file.
* java/security/Provider.java: New file.
* java/security/PublicKey.java: New file.
* java/security/SecureRandom.java: New file.
* java/security/Security.java: New file.
* java/security/Signature.java: New file.
* java/security/SignatureException.java: New file.
* java/security/interfaces/DSAKey.java: New file.
* java/security/interfaces/DSAParams.java: New file.
* java/security/interfaces/DSAPrivateKey.java: New file.
* java/security/interfaces/DSAPublicKey.java: New file.
* java/security/interfaces/RSAPrivateCrtKey.java: New file.
* java/security/interfaces/RSAPrivateKey.java: New file.
* java/security/interfaces/RSAPublicKey.java: New file.
* java/security/spec/AlgorithmParameterSpec.java: New file.
* java/security/spec/InvalidKeySpecException.java: New file.
* java/security/spec/InvalidParameterSpecException.java: New file.
* java/security/spec/KeySpec.java: New file.
* java/security/spec/RSAPrivateCrtKeySpec.java: New file.
* java/security/spec/RSAPrivateKeySpec.java: New file.
* java/security/spec/RSAPublicKeySpec.java: New file.
* Makefile.am: Added above java.security files.
* Makefile.in: Rebuilt.
* java/security/MessageDigest.java: Rewritten.
* java/security/SecureClassLoader.java: Added JDK1.2 comment.
From-SVN: r32461
2000-03-09 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Call
_Jv_PrepareConstantTimeTables.
* java/lang/natClass.cc (_Jv_PrepareConstantTimeTables): Array
classes should have an IDT, so don't return if klass is an array
class.
From-SVN: r32445
* All files: Updated copyright information.
* COPYING: New file.
* COPYING.LIB: Removed.
* LIBGCJ_LICENSE: We now use GPL + special exception.
From-SVN: r32387
2000-03-07 Bryce McKinlay <bryce@albatross.co.nz>
* resolve.cc (_Jv_SearchMethodInClass): New function.
(_Jv_ResolvePoolEntry): Search superinterfaces for interface
methods.
* java/lang/Class.h (_Jv_SearchMethodInClass): New prototype.
2000-03-07 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/Class.h (union _Jv_IDispatchTable): New declaration.
(struct _Jv_ifaces): New declaration.
JV_CLASS: New macro definition.
(getComponentType): Relocate below isArray() for inlining.
(getModifiers): Declare `inline'.
(getSuperclass): Ditto.
(isArray): Ditto.
(isPrimitive): Ditto.
(_Jv_IsAssignableFrom): New prototype.
(_Jv_LookupInterfaceMethodIdx): New prototype. Predeclare with "C"
linkage.
(_Jv_InitClass): Move from natClass.cc. Declare `inline'.
Check for JV_STATE_DONE before invoking initializeClass().
(_Jv_PrepareConstantTimeTables): New prototype.
(_Jv_GetInterfaces): Ditto.
(_Jv_GenerateITable): Ditto.
(_Jv_GetMethodString): Ditto.
(_Jv_AppendPartialITable): Ditto.
(_Jv_FindIIndex): Ditto.
depth, ancestors, idt: New class fields.
* java/lang/natClass.cc (isAssignableFrom): Move functionality to
inline function `_Jv_IsAssignableFrom'. Use that function.
(isInstance): Declare `inline'.
(initializeClass): Get lock on class before checking `state'. Unlock
before calling resolveClass0. Call _Jv_PrepareConstantTimeTables
with the lock held.
(_Jv_LookupInterfaceMethod): Use _Jv_GetMessageString.
(_Jv_IsAssignableFrom): New inline function. Test assignability
using class->depth and ancestor table.
(_Jv_IsInstanceOf): Use _Jv_IsAssignableFrom.
(_Jv_CheckCast): Move from prims.cc. Use JV_CLASS and
_Jv_IsAssignableFrom.
(_Jv_CheckArrayStore): Ditto.
(_Jv_LookupInterfaceMethodIdx): New function.
INITIAL_IOFFSETS_LEN, INITIAL_IFACES_LEN: New #defines.
(_Jv_PrepareConstantTimeTables): New function.
(_Jv_IndexOf): Ditto.
(_Jv_GetInterfaces): Ditto.
(_Jv_GenerateITable): Ditto.
(_Jv_GetMethodString): Ditto.
(_Jv_AppendPartialITable): Ditto.
iindex_mutex, iindex_mutex_initialized: New static fields.
(_Jv_FindIIndex): New function.
* java/lang/natClassLoader.cc (_Jv_NewClass): Set new jclass fields.
* prims.cc (_Jv_CheckCast): Moved to natClass.cc.
(_Jv_CheckArrayStore): Ditto.
(JvNewCharArray, JvNewBooleanArray, JvNewByteArray, JvNewShortArray,
JvNewIntArray, JvNewLongArray, JvNewFloatArray, JvNewDoubleArray):
Moved to gcj/array.h.
(_Jv_Realloc): New function.
* gcj/cni.h: Move _Jv_PrimClass definitions to gcj/array.h.
* gcj/array.h: _Jv_PrimClass definitions moved from gcj/cni.h.
(JvNewCharArray, JvNewBooleanArray, JvNewByteArray,
JvNewShortArray, JvNewIntArray, JvNewLongArray, JvNewFloatArray,
JvNewDoubleArray): Implementations moved from prims.cc and
declared `inline'.
* gcj/javaprims.h (_Jv_Realloc): Prototype.
* include/jvm.h (_Jv_LookupInterfaceMethodIdx): Prototype.
From-SVN: r32382
* jni.cc (MARK_NONE): New define.
(MARK_USER): Likewise.
(MARK_SYSTEM): Likewise.
(struct _Jv_JNI_LocalFrame): Made `marker' bigger and `size'
smaller.
(_Jv_JNI_DeleteLocalRef): Use MARK_NONE in assert.
(_Jv_JNI_EnsureLocalCapacity): Use MARK_NONE.
(_Jv_JNI_PushLocalFrame): Use MARK_USER.
(_Jv_JNI_PopLocalFrame): New version with additional `stop'
argument.
(call): Use MARK_SYSTEM.
(_Jv_GetJNIEnvNewFrame): New function.
(_Jv_LookupJNIMethod): New function.
(_Jv_JNI_PopSystemFrame): New function.
(call): Use _Jv_JNI_PopSystemFrame and _Jv_LookupJNIMethod.
From-SVN: r32373
* configure: Rebuilt.
* configure.in (ZLIBTESTSPEC): New macro.
(GCTESTSPEC): New macro.
(LIBGCJTESTSPEC): New macro.
* libgcj-test.spec.in: New file.
From-SVN: r32330
2000-02-28 Mo DeJong <mdejong@cygnus.com>
* java/util/zip/ZipOutputStream.java(closeEntry) : Fixed
error caused by the incorrect casting of a long to an int.
From-SVN: r32257
2000-02-28 Mo DeJong <mdejong@cygnus.com>
* java/util/zip/ZipOutputStream.java(write_entry) : Fixed
SIGSEV caused by use of the wrong instance variable.
From-SVN: r32256
2000-02-27 Bryce McKinlay <bryce@albatross.co.nz>
* java/io/File.java (File(String, String)): For dirPath, treat an
empty String the same as `null'.
From-SVN: r32217
* include/jvm.h (_Jv_GetJavaVM): Declare.
* include/java-interp.h (_Jv_GetFirstMethod): New function.
(_Jv_MethodBase::get_method): New method.
(_Jv_JNIMethod::set_function): New method.
* jni.cc (_Jv_JNI_UnregisterNatives): New function.
(_Jv_JNI_RegisterNatives): New function.
(_Jv_JNIFunctions): Updated for new functions.
(_Jv_GetJavaVM): New function.
(_Jv_JNI_GetJavaVM): Use it. Now static.
(_Jv_JNI_AttachCurrentThread): Create a new JNIEnv if this thread
is already a Java thread but does not have a JNIEnv yet.
* java/lang/natRuntime.cc (_load): Pass the JavaVM to the onload
function.
From-SVN: r32056
* gnu/gcj/math/MPN.java(findLowestBit): Made methods public.
* java/math/BigInteger.java(BigInteger(int,int,java.util.Random):
New constructor.
(min): Implemented.
(max): Implemented.
(modPow): Rewritten to not use the naive, slow, brute force approach.
(isProbablePrime): Implemented.
(testBit): Implemented.
(flipBit): Implemented.
(getLowestSetBit): Implemented.
From-SVN: r31966
* include/jni.h (JNI_FALSE): Renamed from JNI_TRUE; oops.
(jboolean): Declare as an attributed int, not a bool.
(_Jv_func): Declare differently for C.
From-SVN: r31907
* gnu/gcj/jni/natNativeThread.cc: New file.
* gnu/gcj/jni/NativeThread.java: New file.
* java/lang/Thread.java (data): Now a RawData.
* include/jvm.h (_Jv_GetCurrentJNIEnv, _Jv_SetCurrentJNIEnv):
Declare.
* Makefile.in: Rebuilt.
* Makefile.am (java/lang/Thread.h): New target.
(ordinary_java_source_files): Added NativeThread.java.
(nat_source_files): Added natNativeThread.cc.
* java/lang/natThread.cc: Include <jni.h>
(struct natThread): Added `jni_env' field.
(_Jv_GetCurrentJNIEnv): New function.
(_Jv_SetCurrentJNIEnv): Likewise.
(initialize_native): Initialize jni_env.
Include RawData.h.
* jni.cc (ThreadGroupClass): New define.
(_Jv_JNI_InvokeFunctions): New structure.
(JNI_GetCreatedJavaVMs): New function.
(the_vm): New global.
(JNI_GetDefaultJavaVMInitArgs): New function.
Include NativeThread.h.
(NativeThreadClass): New define.
(_Jv_JNI_EnsureLocalCapacity): Return JNI_ERR, not -1.
(_Jv_JNI_DestroyJavaVM): New function.
(_Jv_JNI_AttachCurrentThread): New function.
(_Jv_JNI_DetachCurrentThread): New function.
(_Jv_JNI_GetEnv): New function.
(JNI_CreateJavaVM): New function.
(_Jv_JNI_GetJavaVM): New function.
(_Jv_JNIFunctions): Added entry for GetJavaVM.
* include/jni.h (JavaVMAttachArgs): New structure.
(JNI_EDETACHED): New define.
(JNI_EVERSION): Likewise.
(JavaVM): Define properly.
(struct JNIInvokeInterface): New structure.
(class _Jv_JavaVM): New class.
(JNI_OnLoad, JNI_OnUnload): Declare.
(JNI_GetDefaultJavaVMInitArgs, JNI_CreateJavaVM,
JNI_GetCreatedJavaVMs): Declare.
(JavaVMInitArgs): New typedef.
(JavaVMOption): Likewise.
(JNI_ERR): New define.
(JNI_OK): Likewise.
From-SVN: r31901
2000-02-10 Andrew Haley <aph@cygnus.com>
* interpret.cc: Don't include fdlibm.h.
Replace #if with #ifdef throughout.
Declare extern __ieee754_fmod.
(continue1): Remove op_getfield, op_getstatic, op_putfield,
op_putstatic insns.
* resolve.cc (_Jv_PrepareClass): Use imeth as method pointer.
Search class hierarchy for superclass vtable.
* java/lang/natClassLoader.cc (_Jv_UnregisterClass): Don't fall
off the end of a pointer list.
* java/lang/natThread.cc (stop): Don't abort, throw an exception
instead.
(suspend): Ditto.
From-SVN: r31897
* gnu/gcj/convert/natIconv.cc (Input_iconv::finalize): Call
iconv_close when handle is not NULL. Thanks to Andrew Haley.
(Output_iconv::finalize): Likewise.
From-SVN: r31876
* java/lang/Runtime.java (_load): Declare.
(load, loadLibrary): Wrote in terms of _load.
* java/lang/natRuntime.cc (load): Call JNI_OnLoad if it appears in
library.
(loadLibrary): Likewise.
Include <jni.h>.
(_load): New method.
(loadLibrary, load): Removed.
From-SVN: r31846
2000-02-04 Andrew Haley <aph@cygnus.com>
* java/lang/Throwable.java (CPlusPlusDemangler): New class.
(printStackTrace): Use a CPlusPlusDemangler to demangle names.
* java/lang/natThrowable.cc (printRawStackTrace): Rename
printStackTrace to printRawStackTrace.
From-SVN: r31785
* java/util/Calendar.java (toString): New method.
* java/util/SimpleTimeZone.java (clone): New method.
(toString): New method.
* java/util/TimeZone.java (clone): New method.
* java/text/SimpleDateFormat.java (clone): New method.
* java/text/NumberFormat.java (clone): New method.
(equals): New method.
* java/text/Format.java (clone): New method.
* java/text/DateFormatSymbols.java (DateFormatSymbols): New
constructor.
(clone): New method.
* java/text/DateFormat.java (clone): New method.
* java/text/Collator.java (clone): New method.
From-SVN: r31775
* include/java-interp.h (_Jv_JNI_conversion_call): Declare.
* resolve.cc (ncode): Use _Jv_JNI_conversion_call when
constructing the closure if the function is native.
* jni.cc (_Jv_JNI_conversion_call): Now returns `void'. No longer
a template function, #if'd out, or static.
Include <java-interp.h>.
From-SVN: r31746
* jni.cc (_Jv_JNI_PopLocalFrame): Leave loop when `n == NULL'.
(_Jv_JNI_conversion_call): _Jv_JNI_PopLocalFrame will never leave
`locals == NULL'.
(wrap_value): New function.
(_Jv_JNI_CallAnyMethodV): Use it.
(_Jv_JNI_CallAnyMethodA): Likewise.
(_Jv_JNI_GetField): Use wrap_value; removed specialized version.
(_Jv_JNI_GetStaticField): Likewise.
From-SVN: r31736
* prims.cc (_Jv_MallocUnchecked): New function.
(main_init): Call _Jv_JNI_Init.
* include/jvm.h (_Jv_MallocUnchecked): Declare.
(_Jv_JNI_Init): Declare.
* jni.cc: Include Hashtable.h, OutOfMemoryError.h, Integer.h,
<string.h>.
(_Jv_JNI_NewGlobalRef): New function.
(_Jv_JNI_DeleteGlobalRef): New function.
(_Jv_JNI_DeleteLocalRef): New function.
(_Jv_JNI_conversion_call): Initialize and clear local reference
frame.
(_Jv_JNI_NewLocalRef): New function.
(struct _Jv_JNI_LocalFrame): New structure.
(_Jv_JNI_PushLocalFrame): New function.
(_Jv_JNI_EnsureLocalCapacity): New function.
(FRAME_SIZE): New define.
(_Jv_JNI_GetStringChars): Mark string, not characters.
(_Jv_JNI_ReleaseStringChars): Unmark string, not characters.
(_Jv_JNI_GetPrimitiveArrayElements): Mark array, not elements.
(_Jv_JNI_ReleasePrimitiveArrayElements): Unmark array, not
elements.
(_Jv_JNI_DefineClass): Make return value a local ref.
(_Jv_JNI_FindClass): Likewise.
(_Jv_JNI_GetSuperclass): Likewise.
(_Jv_JNI_ExceptionOccurred): Likewise.
(_Jv_JNI_AllocObject): Likewise.
(_Jv_JNI_GetObjectClass): Likewise.
(_Jv_JNI_CallAnyMethodV): Likewise.
(_Jv_JNI_NewString): Likewise.
(_Jv_JNI_NewStringUTF): Likewise.
(_Jv_JNI_NewObjectArray): Likewise.
(_Jv_JNI_GetObjectArrayElement): Likewise.
(_Jv_JNI_ToReflectedField): Likewise.
(_Jv_JNI_ToReflectedMethod): Likewise.
(_Jv_JNIFunctions): Updated table for new functions.
(_Jv_JNI_Init): New function.
(mark_for_gc): Wrote.
(unmark_for_gc): Wrote.
* include/jni.h (struct JNINativeInterface): Removed name from
PopLocalFrame parameter.
(class _Jv_JNIEnv): Added `locals' field.
From-SVN: r31730
* gcj/method.h (JvNumMethods): Moved from Class.h.
(JvGetFirstMethod): Likewise.
* java/lang/Class.h (Object): Updated decl of
_Jv_JNI_ToReflectedField.
(Object): Added _Jv_JNI_ToReflectedMethod as a friend.
* Makefile.in: Rebuilt.
* Makefile.am (java/lang/reflect/Field.h): Added `jboolean'
argument of _Jv_JNI_ToReflectedField.
(java/lang/reflect/Constructor.h): Added _Jv_JNI_ToReflectedMethod
as a friend.
(java/lang/reflect/Method.h): Likewise.
* include/jni.h (class _Jv_JNIEnv): Added `klass' member. Use
__GCJ_JNI_IMPL__.
(jweak): New typedef.
(struct JNINativeInterface): Correctly declare remaining entries.
* jni.cc: Include Class.h, ClassLoader.h.
(_Jv_JNI_FindClass): New function.
(_Jv_JNI_DefineClass): New function.
(_Jv_JNI_conversion_call): New function.
(_Jv_JNI_FindClass): Use current class loader to find class.
(_Jv_JNI_ExceptionCheck): New function.
(_Jv_JNI_FromReflectedField): Now static.
(MethodClass): New define.
(_Jv_JNI_FromReflectedMethod): New function.
(_Jv_JNI_ToReflectedMethod): Likewise.
Include Method.h.
(_Jv_JNI_IsAssignableFrom): Renamed.
(_Jv_JNI_GetStringRegion): New function.
Include StringIndexOutOfBoundsException.h.
(_Jv_JNI_GetStringUTFRegion): New function.
(_Jv_JNIFunctions): Updated for new functions.
(_Jv_JNI_GetPrimitiveArrayCritical): New function
(_Jv_JNI_ReleasePrimitiveArrayCritical): Likewise.
(_Jv_JNI_GetStringCritical): New function.
(_Jv_JNI_ReleaseStringCritical): Likewise.
(get_throwable): Removed.
(GCJ_JV_JNIENV_FRIEND): Removed.
(__GCJ_JNI_IMPL__): Define.
Include method.h.
From-SVN: r31638
2000-01-14 Andrew Haley <aph@cygnus.com>
* java/lang/natThrowable.cc: New file.
* java/lang/Throwable.java (fillInStackTrace): Make native.
(printStackTrace): Call native method to do this.
(Throwable): Call fillInStackTrace.
(stackTrace): New variable.
* include/jvm.h: Add _Jv_ThisExecutable functions.
* prims.cc: (_Jv_execName): New variable.
(catch_segv): Call fillInStackTrace.
(catch_fpe): Ditto.
(_Jv_ThisExecutable): New functions.
(JvRunMain): Set the name of this executable.
* Makefile.am: Add java/lang/natThrowable.cc.
Add name-finder.cc.
* Makefile.in: Rebuilt.
* acconfig.h: Add HAVE_PROC_SELF_EXE.
* configure.in: Force link with __frame_state_for in
FORCELIBGCCSPEC. Add new checks for backtrace.
* include/config.h.in: Rebuilt.
* name-finder.cc: New file.
* include/name-finder.h: New file.
From-SVN: r31460
2000-01-10 Jeff Sturm <jsturm@sigma6.com>
* java/lang/natMath.cc (pow): Cast args to `double', not
`jdouble'.
(atan2): Likewise.
(IEEEremainder): Likewise.
* java/lang/mprec.h: Don't wrap includes in `extern "C"'.
* java/lang/fdlibm.h: Don't wrap includes in `extern "C"'.
From-SVN: r31305
2000-01-09 Anthony Green <green@cygnus.com>
* java/lang/natString.cc (init): Test for overflow condition
during out of bounds check.
(getChars): Throw StringIndexOutOfBoundsException, not
ArrayIndexOutOfBoundsException.
(getBytes): Ditto.
(regionMatches): Obey case option during string comparison.
* configure.host (ligcj_interpreter): New variable. Enable
interpreter by default on IA-32.
* configure.in: Examine libgcj_interpreter.
* configure: Rebuilt.
From-SVN: r31300
* java/lang/natClass.cc (_getConstructors): Correctly check
whether method name is the init name.
(getMethod): Look at accflags on method in `klass', not `this'.
From-SVN: r31258
* java/lang/natClass.cc (getMethod): Compute offset relative to
`klass's methods table, not `this's table.
* java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA):
In unwrapping/widening case, check whether `k' is null, not
whether it is primitive. Initialize `num' from `argelts', not
`paramelts'. Correct create and pass arguments to ffi_call.
Don't let presence of `this' argument affect index used to look in
argument arrays.
(COPY): Set appropriate element in `values' vector.
From-SVN: r31253
* java/lang/reflect/natMethod.cc (get_ffi_type): Test size of
jboolean and select correct ffi type on that basis.
(_Jv_CallNonvirtualMethodA): Handle `void' return type.
Constructor call always has `void' return type.
From-SVN: r31242
* java/lang/Class.h (getSignature): Updated.
* java/lang/Class.java (getSignature): Updated.
* java/lang/natClass.cc (getSignature): Added `is_constructor'
argument.
(getConstructor): Ensure constructor is public.
(_getConstructors): Check for public-ness of constructor when
`declared' is false, not when it is true.
From-SVN: r31241
* java/net/natPlainDatagramSocketImpl.cc (peek): Removed unnecesary
comment.
(receive): Set the sender's address in the DatagramPacket.
From-SVN: r31218
2000-01-04 Tom Tromey <tromey@cygnus.com>
* java/lang/reflect/natConstructor.cc (newInstance): Pass
declaring class as return_type argument to
_Jv_CallNonvirtualMethodA.
* java/lang/reflect/natMethod.cc (_Jv_CallNonvirtualMethodA): In
constructor case, create object and use it as `this' argument.
* java/lang/Class.h (_getConstructors): Declare.
(_getFields): Declare.
* java/lang/Class.java (getConstructors): Wrote.
(_getConstructors): New native method.
(getDeclaredConstructors): Wrote.
(_getFields): Declare new native method.
* java/lang/natClass.cc (_Jv_LookupInterfaceMethod): Removed
incorrect comment.
(getMethod): Work correctly when class is primitive.
(getDeclaredMethods): Likewise. Compute offset using `method',
not `mptr'.
(getDeclaredMethod): Likewise.
(getConstructor): Wrote.
(ConstructorClass): New define.
(getDeclaredConstructor): Wrote.
(_getConstructors): New method.
(_getFields): New method.
(getFields): Wrote.
* Makefile.in: Rebuilt.
* Makefile.am (AM_CXXFLAGS): Added -D_GNU_SOURCE.
* prims.cc: Remove `#pragma implementation'.
* gcj/array.h: Remove `#pragma interface'.
* prims.cc (_Jv_equaln): New function.
* java/lang/Class.java (getSignature): Declare.
* resolve.cc (_Jv_LookupDeclaredMethod): Moved to natClass.cc.
* java/lang/natClass.cc (_Jv_LookupDeclaredMethod): Moved from
resolve.cc.
(getSignature): New method.
(getDeclaredMethod): Wrote.
(getMethod): Wrote.
Include StringBuffer.h.
* java/lang/Class.h (Class): Added _Jv_FromReflectedConstructor
as a friend. Unconditionally declare _Jv_LookupDeclaredMethod as
a friend.
(getSignature): Declare.
* include/jvm.h (_Jv_GetTypesFromSignature): Declare.
(_Jv_equaln): Declare.
(_Jv_CallNonvirtualMethodA): Declare.
* Makefile.in: Rebuilt.
* Makefile.am (nat_source_files): Added natConstructor.cc.
(java/lang/reflect/Constructor.h): New target.
* java/lang/reflect/natConstructor.cc: New file.
* java/lang/reflect/Constructor.java (newInstance): Now native.
(declaringClass): Renamed from decl_class.
(offset): Renamed from index.
(getType): New native method.
(getModifiers): Now native.
(getParameterTypes): Call getType if required.
(hashCode): Include hash code from declaring class.
(modifiers): Removed.
(toString): Call getType if required.
* gcj/method.h (_Jv_FromReflectedConstructor): New function.
* java/lang/reflect/natMethod.cc (hack_call): New method.
Removed `#if 0' around FFI code.
Include <gnu/gcj/RawData.h>.
(invoke): Use _Jv_CallNonvirtualMethodA. Throw
IllegalArgumentException when argument object and class disagree.
(_Jv_GetTypesFromSignature): New function.
(getType): Use it.
(ObjectClass): New define.
(_Jv_CallNonvirtualMethodA): New function.
* java/lang/reflect/Method.java (hack_trampoline): New method.
(hack_call): New native method.
1999-12-21 Per Bothner <per@bothner.com>
* java/lang/natClass.cc (getDeclaredMethods): Correctly compute
offset in new Method.
From-SVN: r31199
1999-12-22 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/natObject.cc (notify): Throw message with
IllegalMonitorStateException.
(notifyAll): Ditto.
(wait): Ditto.
* java/lang/Thread.java (isInterrupted): Don't clear interrupt_flag.
(isInterrupted_): New function, which does clear interrupt_flag.
(interrupt): Use `isInterrupted_'.
* java/lang/natThread.cc (interrupt): Add comment.
(join): Set `Prev' in joiner loop.
Change various calls to `isInterrupted' to use `isInterrupted_'.
* posix-threads.cc (_Jv_CondWait): Allways use pthread_cond_timedwait
on linux. Set result to 0 on an interrupt. Test interrupted status
of java Thread object directly.
FLAG_INTERRUPTED: removed.
(_Jv_ThreadStart): Throw OutOfMemoryError if pthread_create fails.
(_Jv_ThreadInterrupt): Don't set FLAG_INTERRUPTED.
(_Jv_InitThreads): Don't block SIGINT.
(_Jv_ThreadWait): Don't configure SIGINT handler.
From-SVN: r31082
1999-12-19 Anthony Green <green@cygnus.com>
* libgcjdata.c: New file.
* libgcj.spec.in: Use @LIBDATASTARTSPEC@ in startfile.
* configure: Rebuilt.
* configure.in (LIBDATASTARTSPEC): Force data with a known name
into the program.
* Makefile.in: Rebuilt.
* Makefile.am: Build libgcjdata.a.
* libgcj.spec.in: Use @FORCELIBGCCSPEC@ in startfile.
* configure: Rebuilt.
* configure.in (FORCELIBGCCSPEC): Force important parts of libgcc
into every program.
From-SVN: r31027
1999-12-16 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/Boolean.java (Boolean(String)): Set Value' to false on a
null String constructor parameter.
* java/net/natPlainSocketImpl.cc: Remove unneccessary sprintf calls
for exception messages.
BooleanClass: declare.
(setOption): Use BooleanClass instead of Class.forName() for
instanceof test.
(bind): Cast 4th parameter of setsockopt to char *' for
compatibility with older Solaris headers.
* java/net/natPlainDatagramSocketImpl.cc: Remove unneccessary
sprintf calls for exception messages.
BooleanClass, IntegerClass: declare.
(setOption): Use BooleanClass and IntegerClass, not Class.forName()
for instanceof test.
From-SVN: r30988
* java/lang/natSystem.cc (init_properties): Don't set user.name or
user.home if NO_GETUID defined. Only set user.dir if getcwd
exists.
* include/config.h.in: Rebuilt.
* acconfig.h (NO_GETUID): New define.
* configure.in: Rebuilt.
* configure.in: Define NO_GETUID in cross case. Check for getcwd
in native case.
From-SVN: r30964
* java/lang/natString.cc (equalsIgnoreCase): return false if
anotherString is null.
* java/lang/Boolean.java (valueOf): return FALSE if argument is
null.
From-SVN: r30763
1999-12-02 Bryce McKinlay <bryce@albatross.co.nz>
* libjava/java/net/ServerSocket.java (ServerSocket): Bind to any
interface if bindAddr is null.
From-SVN: r30755
* posix-threads.cc (_Jv_MutexInit): Use _Jv_PthreadGetMutex to get
mutex to initialize. Initialize `count' if required.
Fixes PR libgcj/98.
From-SVN: r30725
1999-11-27 Per Bothner <per@bothner.com>
* exception.cc: Remove prototype declarations for malloc and free.
These clash with recent versions of glibc, which specifies `throws ()'
when __cplusplus is defined. Instead, #include <stdlib.h>.
From-SVN: r30709
1999-11-05 Jeff Sturm <jsturm@sigma6.com>
* boehm.cc (_Jv_GCSetInitialHeapSize): Swapped size & current.
* prims.cc (parse_heap_size): Use end, not spec. Use 1024
multipler for `k'.
From-SVN: r30418
* java/lang/ClassLoader.java (getSystemResource): Use
getSystemClassLoader instead of ClassLoader.system.
(getSystemResourceAsStream): Ditto.
* java/lang/natClassLoader.cc (redirect): Make static and
remove #ifdef INTERPRETER so it is always defined.
(getVMClassLoader0): Remove #ifdef INTERPRETER so it always
returns a VMClassLoader.
* java/util/ResourceBundle.java (trySomeGetBundle): Create a
PropertyResourceBundle if a properties file is found before a
ResourceBundle class.
From-SVN: r30048
* libtool-version: Catch up by incrementing current.
* configure.host: Disable use of GCJ_PROPERTIES for mips-tx39.
* configure, include/config.h.in: Rebuilt.
* acconfig.h (DISABLE_GETENV_PROPERTIES): Undefine.
* configure.in: Added --disable-getenv-properties and new define
`DISABLE_GETENV_PROPERTIES'.
* prims.cc (PROCESS_GCJ_PROPERTIES): Define.
(next_property_key): New function.
(next_property_value): New function.
(process_gcj_properties): New function.
(JvRunMain): Call process_gcj_properties.
(_JvRunMain): Ditto.
* java/lang/natSystem.cc (init_properties): Set properties defined
in GCJ_PROPERTIES. Also add 1.2 style versioning properties.
* include/java-props.h: New file.
* java/lang/natSystem.cc (init_properties): Add new properties to
conform with Java Product Versioning Specification.
From-SVN: r30007
* configure.in (GCJ): Define as "target-gcj", not "target/gcj"
when building Canadian cross.
(NATIVE): Don't define when cross-compiling.
From-SVN: r29848
* Makefile.in: Rebuilt.
* Makefile.am (ZINCS): Removed. This is defined in configure.in
when needed, and must be left empty when not needed.
From-SVN: r29809
* configure: Rebuilt.
* configure.in: Set classpath when invoking gcj. Use changequote
around sed invocation.
* java/net/natPlainSocketImpl.cc: Stub native functions if
DISABLE_JAVA_NET is defined.
* java/net/natPlainDatagramSocketImpl.cc (setTimeToLive): Fixed
typo in exception string.
(getTimeToLive): Likewise.
Stub native functions if DISABLE_JAVA_NET is defined.
* java/net/natInetAddress.cc: Stub native functions if
DISABLE_JAVA_NET is defined.
* configure.host: Disable java.net for mips-tx39.
* configure, include/config.h.in: Rebuilt.
* acconfig.h (DISABLE_JAVA_NET): Undefine.
* configure.in: Added --disable-java-net and new define
`DISABLE_JAVA_NET'.
From-SVN: r29759
* configure: Rebuilt.
* configure.in (PROCESS): In POSIX case, only set if not already
set.
* configure.host (PROCESS): Set in mips-tx39 case.
From-SVN: r29700
* include/sparc-signal.h (SIGNAL_HANDLER): Third argument now a
`void *'.
(MAKE_THROW_FRAME): Cast third argument back to `ucontext_t *'.
From-SVN: r29682
1999-09-16 Bryce McKinlay <bryce@albatross.co.nz>
* java/text/MessageFormat.java (MessageFormat(String)): Set the
default locale.
* java/text/NumberFormat.java: Check that object is a Number. If
not, throw IllegialArgumentException.
From-SVN: r29574
* configure: Rebuilt.
* configure.in: Build include/Makefile.
* Makefile.in: Rebuilt.
* Makefile.am (SUBDIRS): Added gcj and include.
(install-data-local): New target.
(extra_headers): New macro.
* include/Makefile.in: New file.
* include/Makefile.am: New file.
* interpret.cc: Don't include gcj/field.h or gcj/cni.h.
* java/lang/reflect/natField.cc: Don't include gcj/field.h or
gcj/cni.h.
* boehm.cc: Don't include java-threads.h or gcj/field.h.
* resolve.cc: Include config.h.
* defineclass.cc: Include config.h.
* include/java-interp.h: Don't include config.h.
* include/jvm.h: Include java-threads.h, Object.h, java-gc.h,
cni.h.
* gcj/javaprims.h: Regenerated namespace decls.
* classes.pl (scan): Don't put `;' after closing brace.
* Makefile.in: Rebuilt.
* Makefile.am (INCLUDES): Added -I for top_srcdir.
* configure.in: Create gcj/Makefile.
* gcj/Makefile.in: New file.
* gcj/Makefile.am: New file.
* java/lang/Object.h: Don't include any other headers.
* gcj/array.h: Renamed from include/java-array.h.
* gcj/field.h: Renamed from include/java-field.h.
* gcj/method.h: Renamed from include/java-method.h.
* gcj/cni.h, gcj/javaprims.h: Moved from include/.
Updated all files to reflect new include structure.
From-SVN: r29278
1999-09-07 Tom Tromey <tromey@cygnus.com>
* posix-threads.cc (_Jv_CondWait): Check `errno' against EINTR,
not `r'. Changed `done_sleeping' to a `bool'.
1999-09-07 Matt Welsh <mdw@cs.berkeley.edu
* libjava/posix-threads.cc: Added _Jv_ThreadDataKey.
Added FLAG_INTERRUPTED to indicate that a thread was interrupted
by another thread, rather than by the GC.
(_Jv_CondWait): Prevent premature thread wakeup by GC.
(_Jv_InitThreads): Initialize _Jv_ThreadDataKey.
* libjava/include/posix-threads.h (_Jv_ThreadCurrentData): New
function.
From-SVN: r29177
* include/posix-threads.h (PTHREAD_MUTEX_IS_STRUCT): New define.
(_Jv_PthreadGetMutex): Use it.
(_Jv_PthreadCheckMonitor): Use new M_COUNT macros.
(_Jv_MutexInit): Use PTHREAD_MUTEX_IS_STRUCT.
(_Jv_MutexLock): Likewise.
(_Jv_MutexUnlock): Likewise.
* include/config.h.in: Rebuilt.
* acconfig.h (PTHREAD_MUTEX_HAVE_M_COUNT,
PTHREAD_MUTEX_HAVE___M_COUNT): New undefs.
* configure: Rebuilt.
* libgcj.spec.in: Don't mention INTERPSPEC.
* configure.in (INTERPSPEC): Removed.
Only run pthreads-related checks when using POSIX threads. Check
for m_count and __m_count in mutex structure.
From-SVN: r29048
* java/lang/reflect/Modifier.java (ALL_FLAGS): New constant.
* resolve.cc: Removed constants defined by
java.lang.reflect.Modifier.
Include <java/lang/reflect/Modifier.h>.
(_Jv_ResolvePoolEntry): Use values from Modifier.
(_Jv_DetermineVTableIndex): Likewise.
(_Jv_PrepareClass): Likewise.
(ncode): Likewise.
* defineclass.cc (_Jv_ClassReader): Removed constants defined by
java.lang.reflect.Modifier.
Include <java/lang/reflect/Modifier.h>.
(checkExtends): Use values from Modifier.
(checkImplements): Likewise.
(handleField): Likewise.
(handleConstantValueAttribute): Likewise.
(handleFieldsEnd): Likewise.
(handleMethod ): Likewise.
(handleMethodsEnd): Likewise.
(handleClassBegin): Likewise.
* interpret.cc: Removed constants defined by
java.lang.reflect.Modifier.
(continue1): Use values from Modifier.
* java/lang/natClassLoader.cc: Removed constants defined by
java.lang.reflect.Modifier.
From-SVN: r29037
* posix-threads.cc (_Jv_CondWait): Use _Jv_PthreadGetMutex.
* include/posix-threads.h (_Jv_Mutex_t): Define as structure,
except on Linux.
(_Jv_PthreadGetMutex): New function.
(_Jv_PthreadCheckMonitor): Use it.
(_Jv_MutexInit): Likewise. ALso, initialize `count'.
(_Jv_MutexLock): Update `count'.
(_Jv_MutexUnlock): Likewise.
(_Jv_PthreadCheckMonitor): Use Linux-specific knowledge when
appropriate.
From-SVN: r29032
* java/lang/natSystem.cc (getpwuid_adaptor): New overloaded
function that detects the signature of getpwuid_r.
(init_properties): Use it.
* java/util/natDate.cc (ctime_adaptor): Likewise for ctime_r.
(toString): Use it.
From-SVN: r28792
* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Renamed
from _Jv_InternClassStrings.
* prims.cc (_Jv_RunMain): New function.
(JvRunMain): Remove gij-support.
* gij.cc (main): Use _Jv_RunMain.
* java/util/zip/ZipFile.java: Call readDirectory in constructor.
* interpret.cc (PUSHA, PUSHI, PUSHF, PUSHL, PUSHD): Don't store
argument in temp variable.
(continue1): For all op_x2y insns, use temp variable for
intermediate value. Also remove some comments.
* java/lang/natClass.cc (newInstance): Call _Jv_InitClass.
(forName): Don't call _Jv_InitClass.
* java/lang/Class.java (getResource,getResourceAsStream): Implement.
* java/util/zip/ZipEntry.java (ZipEntry(ZipEntry)): New construcor.
* java/util/jar/JarInputStream.java: New file.
* java/util/jar/JarEntry.java: New file.
* java/util/jar/JarFile.java: New file.
* java/net/URLClassLoader.java: New file.
* java/net/JarURLConnection.java: New file.
* gnu/gcj/protocol/jar/Handler.java: New file.
* gnu/gcj/protocol/jar/Connection.java: New file.
* java/security/SecureClassLoader.java: New file.
* java/lang/ClassLoader.java (parent): New variable.
(ClassLoader (ClassLoader)): new constructor.
(findClass): New method.
(loadClass): Add default 1.2 implementation.
(getSystemResourceAsBytes, getResourceAsBytes): Removed.
(readfully): Removed.
* gnu/gcj/runtime/VMClassLoader.java: Moved from java/lang.
(findSystemClass): New method.
(VMClassLoader): Constructor rewritten.
(init): New method.
All other methods removed.
* java/lang/natClassLoader.cc: Change use of java::lang::VMClassLoader
to gnu::gcj::runtime::VMClassLoader.
(_Jv_InternClassStrings): Use _Jv_ResolvePoolEntry. Also handle
class entries.
(VMClassLoader::findSystemClass): renamed from findBootClass.
* Makefile.am: Add new files.
(FirstThread.h, ThreadGroup.h): Add _Jv_Main friend.
* Makefile.in: Rebuilt.
From-SVN: r28748
1999-07-31 Alexandre Oliva <oliva@dcc.unicamp.br>
* configure.in: Check for struct hostent_data and need for
-D_REENTRANT for gethostbyname_r declaration.
* java/net/natInetAddress.cc: Define _REENTRANT if needed.
(lookup): Use hostent_data for fixed_buffer.
* configure, include/config.h.in: Rebuilt.
From-SVN: r28369
1999-07-31 Alexandre Oliva <oliva@dcc.unicamp.br>
* java/lang/natSystem.cc (arraycopy): Use bcopy if memmove is not
available. Don't cast memmove args to (void*).
* configure.in: Do not abort if memmove is not available.
From-SVN: r28360
1999-07-07 Andrew Haley <aph@cygnus.com>
* include/i386-signal.h (MAKE_THROW_FRAME): Advance EIP by two
bytes to make it point after the instruction where the trap
occurred.
(HANDLE_DIVIDE_OVERFLOW): Ditto.
From-SVN: r27994
1999-07-01 Warren Levy <warrenl@cygnus.com>
* gnu/gcj/convert/BytesToUnicode.java (read): Changed outlength
to count and revised comments to match.
* gnu/gcj/convert/Input_EUCJIS.java (read): Same as Input_8859_1.java.
* gnu/gcj/convert/Input_JavaSrc.java (read): ditto.
* gnu/gcj/convert/Input_SJIS.java (read): ditto.
* gnu/gcj/convert/Input_UTF8.java (read): ditto.
* gnu/gcj/convert/natInput_EUCJIS.cc (read): ditto.
* gnu/gcj/convert/natInput_SJIS.cc (read): ditto.
1999-07-01 John-Marc Chandonia <jmc@cmpharm.ucsf.edu>
* gnu/gcj/convert/Input_8859_1.java (read): Use 3rd parameter
properly as count rather than outlength.
* java/io/BufferedOutputStream.java (write(byte[],int,int): Flush
output on overflow rather than buffer fill.
* java/io/BufferedReader.java (fill): Don't clear out the buffer
if markPos is 0 and there is still room in the buffer.
From-SVN: r27892
1999-07-01 Andrew Haley <aph@cygnus.com>
* include/i386-signal.h: Replace sigaction () with __sigaction ().
This is a workaround for a bug in glibc's pthreads package which
doesn't deliver any sigcontext information to a signal handler.
From-SVN: r27876
1999-06-24 Tom Tromey <tromey@cygnus.com>
* java/lang/e_asin.c: Don't use __int32_t or __uint32_t.
* java/lang/fdlibm.h (HUGE): Conditionally define.
Fri May 28 22:20:03 1999 Anthony Green <green@cygnus.com>
* java/lang/fdlibm.h: Don't use __uint32_t. Include mprec.h.
* java/lang/e_log.c: Don't use __uint32_t.
From-SVN: r27733
* java/net/DatagramSocketImpl.java (localPort): Fixed typo to match JDK.
* java/net/natPlainDatagramSocketImpl.cc (bind): ditto.
* java/text/ChoiceFormat.java (nextDouble(double, boolean)): Method
is not final per JDK.
* java/util/PropertyResourceBundle.java (handleGetObject): Method is
public per JDK.
* java/util/zip/DataFormatException.java: Class extends Exception.
* java/util/zip/Deflater.java (finalize): Method is protected per JDK.
* java/util/zip/ZipEntry.java: Class implements ZipConstants.
* java/util/zip/ZipInputStream.java: ditto.
(closeEntry): Changed method name to match JDK spec.
From-SVN: r27717
* java/net/natInetAddress.cc (lookup): Preserve caller-supplied
hostname in returned InetAddress objects.
(getLocalHostname): Fix typo.
* java/net/InetAddress.java (getByName): Set hostname on return
object.
(getLocalHost): Call lookup directly to ensure that a fully-qualified
name is returned.
From-SVN: r27587
* java/net/natInetAddress.cc (aton): Fix typos.
(lookup): Use a bigger buffer size for gethostbyname_r on all
versions of glibc. Updated FIXME comment explaining this.
Modified while loops to not set herr = ERANGE to work around glibc
problems. Use user specified hostname in InetAddress result when
available (consistent with JDK).
From-SVN: r27484
* java/lang/Runtime.java (exec): Convert prog name and arguments
to string array.
* java/lang/natPosixProcess.cc (startProcess): Fix typo in
environment array conversion. Preserve current environment if envp
not passed. Preserve PATH unless explicitly specified.
* java/io/DataInputStream.java (readLine): Fix case where '\r' is
followed by EOF. Set a flag when a line is terminated by '\r' and
ignore following '\n' if set.
From-SVN: r27458
1999-06-02 Warren Levy <warrenl@cygnus.com>
* java/net/URL.java (URL(URL,String)): Initialize port to -1.
Ignore context if spec is an absolute URL. Fix braindead
string comparison.
(hashCode): Use JDK 1.2 style algorithm.
* java/net/URLStreamHandler.java (parseURL): Reimplement to handle
context URL properly.
1999-05-30 Anthony Green <green@cygnus.com>
* java/net/URLStreamHandler.java (parseURL): Parse relative URLs
correctly. Clean up "/../" and "/./" path fragments.
From-SVN: r27334
* java/net/DatagramSocket.java (laddr): Removed.
(DatagramSocket): Removed attempts to get or set laddr if null.
(getLocalAddress): Reimplemented per spec.
* java/net/MulticastSocket.java (setTimeToLive): Throw exception
when ttl is 0.
(joinGroup): Throw NullPointerException if any argument is null.
(leaveGroup): ditto.
* java/net/PlainDatagramSocketImpl.java: Updated comments.
* java/net/PlainSocketImpl.java (timeout): Added.
(getInputStream): Added FIXME comment on how to support timeouts
for TCP.
* java/net/ServerSocket.java (ServerSocket): Added FIXME comment.
* java/net/Socket.java: Added FIXME comments to identify
conflicting specs between the JCL and JDK 1.2 documents.
* java/net/natPlainDatagramSocketImpl.cc (bind): Use INADDR_ANY
if host is null. Get localport value resolved by kernel if bind
lport is 0.
(receive): Implemented support for timeouts in UDP.
(setOption): Implemented based on natPlainSocketImpl version.
(getOption): ditto.
* java/net/natPlainSocketImpl.cc (bind): Get localport value
resolved by kernel if bind lport is 0.
(connect): Get localport value resolved by kernel if bind wasn't
done to set localport.
(accept): Implemented support for timeouts for ServerSocket.
(setOption): Save value for SO_TIMEOUT.
(getOption): Return timeout for SO_TIMEOUT.
From-SVN: r27230
* java/util/zip/ZipInputStream.java (fill): New method.
(compressed_len): New instance variable.
(getNextStream): Set it.
(read): Reset inflater on EOF. Only read via `super' if entry is
deflated.
(skip): Only skip via `super' if entry is deflated.
* java/util/zip/Deflater.java (last_input_count): Removed.
* java/util/zip/natDeflater.cc (deflate): Return 0 if input array
is length 0.
(needsInput): Don't use last_input_count.
(setInput): Don't set last_input_count.
* java/util/zip/natInflater.cc (getRemaining): Return correct
result.
(inflate): Return 0 if input array is length 0.
(setInput): Don't set last_input_count.
* java/util/zip/Inflater.java (last_input_count): Removed.
From-SVN: r27105
1999-05-21 Andrew Haley <aph@cygnus.com>
* include/sparc-signal.h (INIT_FPE, INIT_SEGV): SA_NODEFER added
to signal options to allow the same exceptions to be rethrown
later.
From-SVN: r27079
1999-05-20 Andrew Haley <aph@cygnus.com>
* libjava/prims.cc (catch_fpe): Call to HANDLE_DIVIDE_OVERFLOW
added.
* include/i386-signal.h (HANDLE_DIVIDE_OVERFLOW): New macro.
(INIT_FPE): Exception string made more informative.
* include/sparc-signal.h (INIT_FPE): Exception string made more
informative.
* testsuite/libjava.lang/Divide_1.java: New file.
* testsuite/libjava.lang/Divide_1.out: New file.
From-SVN: r27056
d
* java/util/Calendar.java (set): First call computeFields if needed.
* java/util/natGregorianCalendar.cc (computeTime): Cast 1000 to jlong.
From-SVN: r26909
* Makefile.in: Rebuilt.
* Makefile.am (jv_convert_DEPENDENCIES): Include libgcj.spec.
* libgcj.spec.in: Don't use `+'. Instead, put old lib spec after
our libraries.
From-SVN: r26889
* java/io/InputStreamReader.java (read): If length is 0, return
0. Reset `wpos' and `wcount' when buffer has been filled and
emptied.
* java/util/Properties.java (save): Removed `FIXME' comment.
(load): Invalid characters in \u now treated as terminators.
Make sure to append character resulting from `\' handling.
Cast to `char' when appending to key or value.
(skip_ws): Inverted test for whitespace.
From-SVN: r26862
* java/text/DateFormat.java (computeInstance): Separate time
and date styles.
(getDateTimeInstance): Ditto.
(getDateTimeInstance(int,int)): New method.
* Makefile.in: Rebuilt.
* Makefile.am (ordinary_java_source_files): Add new classes.
* java/util/PropertyResourceBundle.java: New file.
* gnu/gcj/util/EnumerationChain.java: New file.
From-SVN: r26842
* Makefile.in: Rebuilt.
* Makefile.am (CLEANFILES): Don't mention $(class_files).
(clean-local): New target
* java/lang/natRuntime.cc: Include <ltdl.h> if required.
(load, loadLibrary): Now native.
(init): New method.
* java/lang/Runtime.java (load, loadLibrary): Now native.
(init): New native method.
(Runtime): Use init.
* prims.cc: Include <ltdl.h> if required.
(JvRunMain): Call LTDL_SET_PRELOADED_SYMBOLS.
From-SVN: r26785
* java/lang/StringBuffer.java (ensureCapacity): Don't resize
vector when shared.
* java/util/Locale.java (Locale(String,String)): Implement in
terms of 3-argument version; variant now defaults to empty
string.
(toString): Assume variant is not null.
(equals): Assume all strings are not null.
(Locale): Throw NullPointerException if any argument is null.
* java/util/ResourceBundle.java (getBundle): Don't try the base
name; now implicit in partialGetBundle call.
(trySomeGetBundle): Search for parent bundles and call setParent
as required.
(partialGetBundle): Added `langStop' argument. Use
`Locale.toString' to compute bundleName.
(resource_cache): New static field.
(partialGetBundle): Cache the returned resource bundle. Now
synchronized.
* gnu/gcj/text/LocaleData_en.java (contents): [collatorRule] Added
missing `<'.
* mauve-libgcj: Enable Collator and RuleBasedCollator.
* java/text/natCollator.cc (decomposeCharacter): `base' now
`const'.
* Makefile.in: Rebuilt.
* Makefile.am (ordinary_java_source_files): Added
CollationElementIterator, CollationKey, Collator,
RuleBasedCollator.
(nat_source_files): Added natCollator.cc.
* java/text/RuleBasedCollator.java (ceiNext): No longer static.
(compare): Pass `this' to CollationElementIterator constructor.
(getCollationElementIterator): Likewise.
(ceiNext): Fix off-by-one error when finding initial substring.
(next): Correctly mask off bits when computing return value.
Fixed return values when one string is shorter than the other.
* java/text/CollationElementIterator.java (collator): New field.
(CollationElementIterator): Added collator argument.
(next): Call ceiNext on collator object.
From-SVN: r26707
* java/util/GregorianCalendar.java (setDefaultTime): New method.
(GregorianCalendar): Use it in all constructors.
* java/util/Calendar.java (Calendar): Changed argument name to
`zone' to match code.
* gnu/gcj/text/LocaleData_en.java: Added collatorRule element.
* java/text/CollationKey.java: New file.
* java/text/CollationElementIterator.java: New file.
* java/text/Collator.java: New file.
* java/text/RuleBasedCollator.java: New file.
From-SVN: r26654
* Makefile.am: Added URLDecoder and URLEncoder.
* Makefile.in: Rebuilt.
* java/net/ServerSocket.java (setSocketFactory): Renamed from
setSocketImplFactory to match spec.
* java/net/Socket.java (getSoLinger): Changed return type to
match spec.
* java/net/URLDecoder.java: New file.
* java/net/URLEncoder.java: New file.
From-SVN: r26605
* java/net/natInetAddress.cc (lookup): On glibc2.0 systems, make
buffer larger to work around bug.
From Bryce McKinlay <bryce@albatross.co.nz>.
From-SVN: r26447
1999-04-14 Andrew Haley <aph@cygnus.com>
* java/lang/natDouble.java (doubleToLongBits): ensure that all
NaNs are always converted to the same long value.
* java/lang/natFloat.java (floatToIntBits): ditto, but for float
converted to int.
From-SVN: r26439