* include/jvm.h: New class _Jv_TempUTFString (helper class for
getting a temporary C string from a jstring)
New macro JV_TEMP_UTF_STRING, which leverages _Jv_TempUTFString
but uses a stack buffer if the string length is less than 256
bytes.
From-SVN: r70564
PR libgcj/11951:
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Returns
void. Throw VirtualMachineError if ffi fails. Initialize return
value. Added is_jni_call argument; only wrap exception if not a
JNI call. Use descriptive message if operation not supported.
(_Jv_GetTypesFromSignature): Use declaring class' loader to find
array class.
* include/jvm.h (_Jv_CallAnyMethodA): Updated declaration.
* jni.cc (_Jv_JNI_CallAnyMethodV): Updated for new form of
_Jv_CallAnyMethodA.
(_Jv_JNI_CallAnyMethodA): Likewise.
(_Jv_JNI_CallAnyVoidMethodV): Likewise.
(_Jv_JNI_CallAnyVoidMethodA): Likewise.
From-SVN: r70544
2003-06-17 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* include/powerpc-signal.h: New File.
* configure.in: Use it.
* configure: Regenerated.
From-SVN: r68088
* libjava/include/posix.h (O_SYNC): Define if not available
and a reasonable, perhaps more conservative, replacement exists.
(O_DSYNC): Likewise.
* java/io/natFileDescriptorPosix.cc (open): Revert last patch.
From-SVN: r67517
2003-06-03 Andrew Haley <aph@redhat.com>
* include/x86_64-signal.h (MAKE_THROW_FRAME): Mark sigcontext on
stack volatile to prevent optimization from removing it.
From-SVN: r67379
2003-03-10 2003-02-27 Mohan Embar <gnustuff@thisiscool.com>
* include/jvm.h: removed declaration of _Jv_ThisExecutable()
setter; made return value of getter const char* instead of char*
* prims.cc: removed all references to _Jv_ThisExecutable().
These are in the platform-specific sections now.
* posix.cc: define platform-specific _Jv_ThisExecutable().
Handle DISABLE_MAIN_ARGS and HAVE_PROC_SELF_EXE cases
* win32.cc: define platform-specific _Jv_ThisExecutable()
using GetModuleFilename()
* java/lang/natRuntime.cc: set gnu.gcj.progname property
to argv[0] instead of _Jv_ThisExecutable()
2003-03-10 Ranjit Mathew <rmathew@hotmail.com>
* gnu/gcj/runtime/NameFinder.java (usingAddr2name): New flag
that is set if we are using addr2name.awk instead of addr2line.
(NameFinder): Set usingAddr2name if using addr2name.awk.
(getExternalLabel): New native method to convert a method
name to an external label.
(lookup): Convert name given by addr2line to an external label
before demangling.
* gnu/gcj/runtime/natNameFinder.cc (LABEL_PREFIX): New string
constant representing the prefix attached to method names to
convert them to an external label.
(gnu::gcj::runtime::NameFinder::getExternalLabel): Define
using LABEL_PREFIX.
From-SVN: r64111
2003-02-12 Ranjit Mathew <rmathew@hotmail.com>
* include/win32.h: Include ws2tcpip.h instead of
winsock.h to obtain definition of the socklen_t type.
Remove IP_TOS definition - not needed with ws2tcpip.h
(_Jv_connect): Correct slight formatting error.
From-SVN: r62801
* aclocal.m4, configure, include/config.h.in: Rebuilt.
* acinclude.m4 (CHECK_FOR_BROKEN_MINGW_LD): Resurrected; was in
aclocal.m4 and lost in some merge.
From-SVN: r62188
2003-01-28 Ranjit Mathew <rmathew@hotmail.com>
Fixes PR java/9254:
* include/win32-threads.h (_Jv_Mutex_t): Convert to a struct
additionally containing id of the owner thread as well as
the number of nested times the thread has acquired the mutex.
(_Jv_MutexInit): Initialise owner thread id and refcount to 0.
(_Jv_MutexDestroy): Reset owner thread id and refcount to 0.
(_Jv_MutexUnlock): Check if really the owner thread, reset
owner thread id to 0 before leaving, if leaving for the last
time.
(_Jv_MutexLock): Set owner thread id in the mutex and increment
refcount.
(_Jv_ThreadYield): Yield using a call to Sleep(0).
* win32-threads.cc (_Jv_CondWait): Check if really owner of
the passed mutex.
Pass handle of the broadcast event, instead of a pointer to it
in Win32 ResetEvent( ) call.
Remove incorrect return values.
(_Jv_CondDestroy): Close both event handles and delete
critical section.
(_Jv_CondNotify): Check if really the owner thread.
(_Jv_CondNotifyAll): Check if really the owner thread.
(_Jv_InitThreads): Change daemon_cond to a manual-reset event.
(really_start): Use SetEvent( ) to signal daemon_cond.
(_Jv_ThreadWait): Remove SignalObjectAndWait( ) and use
WaitForSingleObject( ) instead to wait for daemon_cond to be
signalled.
From-SVN: r62033
* java/lang/natClassLoader.cc (defineClass0): Removed erroneous
comment.
* java/lang/ClassLoader.java (defineClass): Use chained
exception when rethrowing.
* defineclass.cc (handleClassBegin): Mark class as interpreted.
* java/lang/reflect/Modifier.java (INVISIBLE, INTERPRETED): New
constants.
* resolve.cc (_Jv_PrepareMissingMethods): New function.
(_Jv_PrepareClass): Use it.
* include/java-interp.h (_Jv_IsInterpretedClass): Rewrote.
(_Jv_InterpClass): _Jv_PrepareMissingMethods now friend.
* java/lang/Class.h (Class::getModifiers): Mask with ALL_FLAGS.
(Class): _Jv_PrepareMissingMethods now friend.
* java/lang/natClassLoader.cc (defineClass0): Use JvSynchronize.
Record `NULL' for system class loader.
(_Jv_RegisterInitiatingLoader): Use JvSynchronize. Special case
system class loader.
(_Jv_FindClassInCache): Likewise.
(_Jv_UnregisterClass): Use JvSynchronize. Free old loader info.
(_Jv_FindClass): Special case system class loader.
* java/lang/natClass.cc (_Jv_abstractMethodError): New function.
(_Jv_SetVTableEntries): Put _Jv_abstractMethodError into empty
vtable slots.
(_Jv_LayoutVTableMethods): Don't generate vtable slot for a method
in a final class.
(_getDeclaredMethod): Don't return synthetic methods.
(getDeclaredMethods): Likewise.
(_getMethod): Likewise.
(_getMethods): Likewise.
From-SVN: r60319
* include/win32.h (_Jv_platform_solib_prefix): New define.
(_Jv_platform_solib_suffix): Likewise.
* include/posix.h (_Jv_platform_solib_prefix): New define.
(_Jv_platform_solib_suffix): Likewise.
* java/lang/natRuntime.cc: Include StackTrace.h.
(_load): Use findLibrary and new platform defines.
(nativeGetLibname): Use new platform defines.
From-SVN: r59976
2002-12-03 Andrew Haley <aph@redhat.com>
* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Call
_Jv_PushClass.
(_Jv_InitNewClassFields): Set protectionDomain and chain = NULL.
(_Jv_PopClass): New.
(_Jv_PushClass): New.
* java/lang/natClass.cc (forName (jstring)): Use a StackTrace to
discover the ClassLoader of our caller.
(_Jv_CheckArrayStore): Don't check that a class is assignment
compatible with Object.
* java/lang/natVMTHrowable.cc: Delete.
* gnu/gcj/runtime/StackTrace.java: New, partly copied from
java.lang.VMThrowable.
(StackTrace(), StackTrace(int)): New constructors.
(classAt, methodAt, update, methodAtAddress): New methods.
(map): New field.
* java/lang/VMThrowable.java: Use StackTrace instead of
natVMTHrowable.
* java/lang/Class.h (getClassLoaderInternal): New.
(class Class): Be friendly with _Jv_PopClass and _Jv_PushClass.
Be friendly with gnu::gcj::runtime::StackTrace.
(Object.chain): New field.
* include/java-interp.h (class _Jv_InterpMethod): Be friendly with
gnu::gcj::runtime::StackTrace.
* prims.cc (_Jv_NewObjectArray): Use getClassLoaderInternal()
instead of getClassLoader().
* verify.cc (class _Jv_BytecodeVerifier): Likewise.
java::lang::VMThrowable.
* Makefile.am (core_java_source_files): Add MethodRef.java,
StackTrace.java.
(nat_source_files): Remove natVMThrowable.cc; add natStackTrace.cc.
* Makefile.in: Rebuild.
2002-12-03 Andrew Haley <aph@redhat.com>
* class.c (make_class_data): New field, "chain".
* decl.c (java_init_decl_processing): Likewise.
From-SVN: r59769
* include/posix.h:
(_Jv_platform_on_close): Moved out of #ifndef DISBALE_JAVA_NET.
* include/win32.h:
(_Jv_platform_on_close): Moved out of #ifndef DISBALE_JAVA_NET.
(backtrace): Moved out of #ifndef DISBALE_JAVA_NET.
From-SVN: r59374
2002-11-21 Michael Koch <konqueror@gmx.de>
* include/posix.h: I put too much into the #ifndef DISABLE_JAVA_NET.
Only the new network functions should be in it.
From-SVN: r59350
2002-11-21 Michael Koch <konqueror@gmx.de>
* include/posic.h: Moved new functions into a #ifndef DISABLE_JAVA_NET
* include/win32.h: Moved new functions into a #ifndef DISABLE_JAVA_NET
From-SVN: r59346
* include/posix.h
(_Jv_socket): New method.
(_Jv_connect): New method.
(_Jv_close): New method.
(_Jv_platform_close_on_exec): Prefixed system function with "::".
(_Jv_bind): New method.
(_Jv_listen): New method.
(_Jv_write): New method.
(_Jv_read): New method.
* include/win32.h
(_Jv_socket): New method.
(_Jv_connect): New method.
(_Jv_close): New method.
(_Jv_bind): New method.
(_Jv_listen): New method.
(_Jv_write): New method.
(_Jv_read): New method.
* java/net/natNetworkInterface.cc:
Include platform.h, removed inclusion of socket.h
(getRealNetworkInterfaces): Replaced ::socket() by _Jv_socket() and
::close() by _Jv_close().
* java/net/natPlainDatagramSocketImpl.cc:
Removed include of socket.h, definition of NATIVE_CLOSE and _Jv_bind,
added some new lines to make code more readable.
(create): Replaced ::socket() by _Jv_socket().
(close): Replaced NATIVE_CLOSE() by _Jv_close().
* java/net/natPlainSocketImpl.cc:
Removed definition of NATIVE_CLOSE, _Jv_bind, Jv_connect and _Jv_accept,
removed include of socket.h, removed some windows defines
(now in include/win32.h).
(create): Replaced ::socket() by _Jv_socket().
(close): Replaced NATIVE_CLOSE() by _Jv_close().
(write): Replaced ::read by _Jv_write().
(read): Replaced ::read by _Jv_read().
From-SVN: r59338
2002-11-19 Ranjit Mathew <rmathew@hotmail.com>
* include/jni.h: Add missing JNICALL and JNIEXPORT attributes
to function and function pointer declarations in accordance with
Sun's JDKs. Define JNIIMPEXP to either JNIEXPORT or JNIIMPORT
based on whether __GCJ_JNI_IMPL__ has been defined or not.
* jni.cc: Add missing JNICALL and JNIEXPORT attributes to
JNI function definitions.
From-SVN: r59277
2002-11-08 Ranjit Mathew <rmathew@hotmail.com>
* include/jni.h (JNIIMPORT, JNIEXPORT, JNICALL): Linker defines
for Win32. JNICALL has been defined to __stdcall to be compatible
with Sun's JDKs.
From-SVN: r58985
2002-10-10 Michael Koch <konqueror@gmx.de>
* gcj/.cvsignore: New file to ignore files generated during build.
* include/.cvsignore: New file to ignore files generated during build.
From-SVN: r58003