Commit b3208f56 by Richard Henderson Committed by Richard Henderson

exception.cc (java_eh_info): Make value type jthrowable.

	* exception.cc (java_eh_info): Make value type jthrowable.
	(_Jv_type_matcher): Remove now unneeded cast.
	(_Jv_Throw): Make argument type jthrowable.  Munge name
	for SJLJ_EXCEPTIONS here ...
	* gcj/cni.h: ... not here.
	(JvThrow): Remove.
	* gcj/javaprims.h (_Jv_Throw, _Jv_Sjlj_Throw): Update declarations.

	* defineclass.cc, interpret.cc, jni.cc, posix-threads.cc,
	prims.cc, resolve.cc, gnu/gcj/runtime/natFirstThread.cc,
	gnu/gcj/xlib/natDrawable.cc, gnu/gcj/xlib/natFont.cc,
	gnu/gcj/xlib/natWMSizeHints.cc, gnu/gcj/xlib/natWindowAttributes.cc,
	gnu/gcj/xlib/natXImage.cc, java/io/natFile.cc,
	java/io/natFileDescriptorEcos.cc, java/io/natFileDescriptorPosix.cc,
	java/io/natFileDescriptorWin32.cc, java/io/natFileWin32.cc,
	java/lang/natClass.cc, java/lang/natClassLoader.cc,
	java/lang/natDouble.cc, java/lang/natObject.cc,
	java/lang/natPosixProcess.cc, java/lang/natRuntime.cc,
	java/lang/natString.cc, java/lang/natSystem.cc,
	java/lang/natThread.cc, java/lang/reflect/natArray.cc,
	java/lang/reflect/natConstructor.cc, java/lang/reflect/natField.cc,
	java/lang/reflect/natMethod.cc, java/util/zip/natDeflater.cc,
	java/util/zip/natInflater.cc:
	Use throw, not JvThrow or _Jv_Throw.

From-SVN: r40838
parent 56b89084
2001-03-25 Richard Henderson <rth@redhat.com>
* 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 <bryce@albatross.co.nz> 2001-03-24 Bryce McKinlay <bryce@albatross.co.nz>
* java/util/HashMap.java (HashMap): If 0 is given for initialCapacity * java/util/HashMap.java (HashMap): If 0 is given for initialCapacity
......
// defineclass.cc - defining a class from .class format. // defineclass.cc - defining a class from .class format.
/* Copyright (C) 1999, 2000 Free Software Foundation /* Copyright (C) 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -1576,10 +1576,9 @@ _Jv_ClassNameSamePackage (_Jv_Utf8Const *name1, _Jv_Utf8Const *name2) ...@@ -1576,10 +1576,9 @@ _Jv_ClassNameSamePackage (_Jv_Utf8Const *name1, _Jv_Utf8Const *name2)
static void static void
throw_no_class_def_found_error (jstring msg) throw_no_class_def_found_error (jstring msg)
{ {
if (msg == 0) throw (msg
JvThrow (new java::lang::NoClassDefFoundError); ? new java::lang::NoClassDefFoundError (msg)
else : new java::lang::NoClassDefFoundError);
JvThrow (new java::lang::NoClassDefFoundError (msg));
} }
static void static void
...@@ -1591,17 +1590,15 @@ throw_no_class_def_found_error (char *msg) ...@@ -1591,17 +1590,15 @@ throw_no_class_def_found_error (char *msg)
static void static void
throw_class_format_error (jstring msg) throw_class_format_error (jstring msg)
{ {
if (msg == 0) throw (msg
JvThrow (new java::lang::ClassFormatError); ? new java::lang::ClassFormatError (msg)
else : new java::lang::ClassFormatError);
JvThrow (new java::lang::ClassFormatError (msg));
} }
static void static void
throw_internal_error (char *msg) throw_internal_error (char *msg)
{ {
JvThrow throw new java::lang::InternalError (JvNewStringLatin1 (msg));
(new java::lang::InternalError (JvNewStringLatin1 (msg)));
} }
static jfloat int_bits_to_float (jint value) static jfloat int_bits_to_float (jint value)
...@@ -1616,12 +1613,12 @@ static jdouble long_bits_to_double (jlong value) ...@@ -1616,12 +1613,12 @@ static jdouble long_bits_to_double (jlong value)
static void throw_incompatible_class_change_error (jstring msg) static void throw_incompatible_class_change_error (jstring msg)
{ {
JvThrow (new java::lang::IncompatibleClassChangeError (msg)); throw new java::lang::IncompatibleClassChangeError (msg);
} }
static void throw_class_circularity_error (jstring msg) static void throw_class_circularity_error (jstring msg)
{ {
JvThrow (new java::lang::ClassCircularityError (msg)); throw new java::lang::ClassCircularityError (msg);
} }
#endif /* INTERPRETER */ #endif /* INTERPRETER */
......
...@@ -24,7 +24,7 @@ details. */ ...@@ -24,7 +24,7 @@ details. */
typedef struct { typedef struct {
__eh_info eh_info; __eh_info eh_info;
void *value; jthrowable value;
} java_eh_info; } java_eh_info;
...@@ -60,7 +60,7 @@ _Jv_type_matcher (java_eh_info *info, void* match_info, ...@@ -60,7 +60,7 @@ _Jv_type_matcher (java_eh_info *info, void* match_info,
size_t mi = (size_t) match_info; size_t mi = (size_t) match_info;
if ((mi & 1) != 0) if ((mi & 1) != 0)
match_info = _Jv_FindClass ((Utf8Const*) (mi - 1), NULL); match_info = _Jv_FindClass ((Utf8Const*) (mi - 1), NULL);
if (! _Jv_IsInstanceOf ((jobject) info->value, (jclass) match_info)) if (! _Jv_IsInstanceOf (info->value, (jclass) match_info))
return NULL; return NULL;
} }
...@@ -136,11 +136,15 @@ _Jv_setup_eh_info (__eh_info *) ...@@ -136,11 +136,15 @@ _Jv_setup_eh_info (__eh_info *)
/* Perform a throw, Java style. Throw will unwind through this call, /* Perform a throw, Java style. Throw will unwind through this call,
so there better not be any handlers or exception thrown here. */ so there better not be any handlers or exception thrown here. */
#ifdef SJLJ_EXCEPTIONS
#define _Jv_Throw _Jv_Sjlj_Throw
#endif
extern "C" void extern "C" void
_Jv_Throw (void *value) _Jv_Throw (jthrowable value)
{ {
if (value == NULL) if (value == NULL)
value = (void *) new java::lang::NullPointerException (); value = new java::lang::NullPointerException;
java_eh_info *ehinfo = *(__get_eh_info ()); java_eh_info *ehinfo = *(__get_eh_info ());
if (ehinfo == NULL) if (ehinfo == NULL)
{ {
......
...@@ -106,18 +106,6 @@ public: ...@@ -106,18 +106,6 @@ public:
{ _Jv_MonitorExit (obj); } { _Jv_MonitorExit (obj); }
}; };
#ifdef SJLJ_EXCEPTIONS
#define _Jv_Throw _Jv_Sjlj_Throw
#endif
// Throw some exception.
extern void JvThrow (jobject obj) __attribute__ ((__noreturn__));
extern inline void
JvThrow (jobject obj)
{
_Jv_Throw ((void *) obj);
}
/* Call malloc, but throw exception if insufficient memory. */ /* Call malloc, but throw exception if insufficient memory. */
extern inline void * extern inline void *
JvMalloc (jsize size) JvMalloc (jsize size)
......
...@@ -368,8 +368,8 @@ extern "C" jstring _Jv_NewStringLatin1(const char*, jsize) ...@@ -368,8 +368,8 @@ extern "C" jstring _Jv_NewStringLatin1(const char*, jsize)
extern "C" jsize _Jv_GetStringUTFLength (jstring); extern "C" jsize _Jv_GetStringUTFLength (jstring);
extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *); extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
extern "C" void _Jv_Throw (void *) __attribute__ ((__noreturn__)); extern "C" void _Jv_Throw (jthrowable) __attribute__ ((__noreturn__));
extern "C" void _Jv_Sjlj_Throw (void *) __attribute__ ((__noreturn__)); extern "C" void _Jv_Sjlj_Throw (jthrowable) __attribute__ ((__noreturn__));
extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__)); extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__));
extern "C" void* _Jv_Realloc (void *, jsize); extern "C" void* _Jv_Realloc (void *, jsize);
extern "C" void _Jv_Free (void*); extern "C" void _Jv_Free (void*);
......
...@@ -69,7 +69,7 @@ gnu::gcj::runtime::FirstThread::run (void) ...@@ -69,7 +69,7 @@ gnu::gcj::runtime::FirstThread::run (void)
if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2) if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2)
{ {
// FIXME: unload the library. // FIXME: unload the library.
_Jv_Throw (new java::lang::UnsatisfiedLinkError (JvNewStringLatin1 ("unrecognized version from preloaded JNI_OnLoad"))); throw new java::lang::UnsatisfiedLinkError (JvNewStringLatin1 ("unrecognized version from preloaded JNI_OnLoad"));
} }
} }
......
...@@ -59,7 +59,7 @@ gnu::gcj::xlib::Drawable::getBounds(java::awt::Rectangle* rv) ...@@ -59,7 +59,7 @@ gnu::gcj::xlib::Drawable::getBounds(java::awt::Rectangle* rv)
switch (status) switch (status)
{ {
case BadDrawable: case BadDrawable:
JvThrow(new XException(display, status)); throw new XException(display, status);
default: default:
; // All OK, NOP. ; // All OK, NOP.
} }
......
...@@ -29,7 +29,7 @@ gnu::gcj::RawData* gnu::gcj::xlib::Font::loadFont(Display* display, ...@@ -29,7 +29,7 @@ gnu::gcj::RawData* gnu::gcj::xlib::Font::loadFont(Display* display,
XFontStruct* fontStruct = XLoadQueryFont(dpy, cName); XFontStruct* fontStruct = XLoadQueryFont(dpy, cName);
if (fontStruct == 0) if (fontStruct == 0)
{ {
JvThrow(new XException(JvNewStringLatin1("font not found"))); throw new XException(JvNewStringLatin1("font not found"));
} }
return reinterpret_cast<gnu::gcj::RawData*>(fontStruct); return reinterpret_cast<gnu::gcj::RawData*>(fontStruct);
......
...@@ -23,7 +23,7 @@ void gnu::gcj::xlib::WMSizeHints::init(WMSizeHints* copyFrom) ...@@ -23,7 +23,7 @@ void gnu::gcj::xlib::WMSizeHints::init(WMSizeHints* copyFrom)
if (hints == 0) if (hints == 0)
{ {
jstring errorMessage = JvNewStringLatin1("XAllocSizeHints failed"); jstring errorMessage = JvNewStringLatin1("XAllocSizeHints failed");
JvThrow(new java::lang::OutOfMemoryError(errorMessage)); throw new java::lang::OutOfMemoryError(errorMessage);
} }
if (copyFrom != 0) if (copyFrom != 0)
......
...@@ -31,7 +31,7 @@ void gnu::gcj::xlib::WindowAttributes::initFromWindow(Window* from) ...@@ -31,7 +31,7 @@ void gnu::gcj::xlib::WindowAttributes::initFromWindow(Window* from)
Status status = XGetWindowAttributes(dpy, win, attributesIn); Status status = XGetWindowAttributes(dpy, win, attributesIn);
if ((status == BadDrawable) | (status == BadWindow)) if ((status == BadDrawable) | (status == BadWindow))
JvThrow(new XException(display, status)); throw new XException(display, status);
} }
......
...@@ -40,7 +40,7 @@ void gnu::gcj::xlib::XImage::init(Visual* visual, jint depth, ...@@ -40,7 +40,7 @@ void gnu::gcj::xlib::XImage::init(Visual* visual, jint depth,
if (ximage == 0) if (ximage == 0)
{ {
jstring errorMessage = JvNewStringLatin1("XCreateImage failed"); jstring errorMessage = JvNewStringLatin1("XCreateImage failed");
JvThrow(new java::lang::OutOfMemoryError(errorMessage)); throw new java::lang::OutOfMemoryError(errorMessage);
} }
bool reinitialize = false; bool reinitialize = false;
......
...@@ -337,7 +337,7 @@ void _Jv_InterpMethod::run_normal (ffi_cif* cif, ...@@ -337,7 +337,7 @@ void _Jv_InterpMethod::run_normal (ffi_cif* cif,
+ storage_size * sizeof (_Jv_word)); + storage_size * sizeof (_Jv_word));
jobject ex = _this->run (cif, ret, args, inv); jobject ex = _this->run (cif, ret, args, inv);
if (ex != 0) _Jv_Throw (ex); if (ex != 0) throw static_cast<jthrowable>(ex);
} }
void _Jv_InterpMethod::run_synch_object (ffi_cif* cif, void _Jv_InterpMethod::run_synch_object (ffi_cif* cif,
...@@ -357,7 +357,7 @@ void _Jv_InterpMethod::run_synch_object (ffi_cif* cif, ...@@ -357,7 +357,7 @@ void _Jv_InterpMethod::run_synch_object (ffi_cif* cif,
jobject ex = _this->run (cif, ret, args, inv); jobject ex = _this->run (cif, ret, args, inv);
_Jv_MonitorExit (rcv); _Jv_MonitorExit (rcv);
if (ex != 0) _Jv_Throw (ex); if (ex != 0) throw static_cast<jthrowable>(ex);
} }
void _Jv_InterpMethod::run_synch_class (ffi_cif* cif, void _Jv_InterpMethod::run_synch_class (ffi_cif* cif,
...@@ -377,7 +377,7 @@ void _Jv_InterpMethod::run_synch_class (ffi_cif* cif, ...@@ -377,7 +377,7 @@ void _Jv_InterpMethod::run_synch_class (ffi_cif* cif,
jobject ex = _this->run (cif, ret, args, inv); jobject ex = _this->run (cif, ret, args, inv);
_Jv_MonitorExit (sync); _Jv_MonitorExit (sync);
if (ex != 0) _Jv_Throw (ex); if (ex != 0) throw static_cast<jthrowable>(ex);
} }
/* /*
...@@ -679,7 +679,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv) ...@@ -679,7 +679,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv)
// working if the method is final. So instead we do an // working if the method is final. So instead we do an
// explicit test. // explicit test.
if (! sp[0].o) if (! sp[0].o)
throw new java::lang::NullPointerException (); throw new java::lang::NullPointerException;
if (rmeth->vtable_index == -1) if (rmeth->vtable_index == -1)
{ {
...@@ -1979,7 +1979,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv) ...@@ -1979,7 +1979,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv)
jclass type = field->type; jclass type = field->type;
jint field_offset = field->u.boffset; jint field_offset = field->u.boffset;
if (field_offset > 0xffff) if (field_offset > 0xffff)
JvThrow (new java::lang::VirtualMachineError); throw new java::lang::VirtualMachineError;
jobject obj = POPA(); jobject obj = POPA();
NULLCHECK(obj); NULLCHECK(obj);
...@@ -2086,7 +2086,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv) ...@@ -2086,7 +2086,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv)
jint field_offset = field->u.boffset; jint field_offset = field->u.boffset;
if (field_offset > 0xffff) if (field_offset > 0xffff)
JvThrow (new java::lang::VirtualMachineError); throw new java::lang::VirtualMachineError;
if (type->isPrimitive ()) if (type->isPrimitive ())
{ {
...@@ -2237,7 +2237,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv) ...@@ -2237,7 +2237,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv)
SAVE_PC; SAVE_PC;
{ {
jobject value = POPA(); jobject value = POPA();
JvThrow (value); throw static_cast<jthrowable>(value);
} }
NEXT_INSN; NEXT_INSN;
...@@ -2250,8 +2250,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv) ...@@ -2250,8 +2250,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv)
if (value != NULL && ! to->isInstance (value)) if (value != NULL && ! to->isInstance (value))
{ {
JvThrow (new java::lang::ClassCastException throw new java::lang::ClassCastException (to->getName());
(to->getName()));
} }
PUSHA (value); PUSHA (value);
...@@ -2412,13 +2411,13 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv) ...@@ -2412,13 +2411,13 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv)
static void static void
throw_internal_error (char *msg) throw_internal_error (char *msg)
{ {
JvThrow (new java::lang::InternalError (JvNewStringLatin1 (msg))); throw new java::lang::InternalError (JvNewStringLatin1 (msg));
} }
static void static void
throw_incompatible_class_change_error (jstring msg) throw_incompatible_class_change_error (jstring msg)
{ {
JvThrow (new java::lang::IncompatibleClassChangeError (msg)); throw new java::lang::IncompatibleClassChangeError (msg);
} }
#ifndef HANDLE_SEGV #ifndef HANDLE_SEGV
...@@ -2429,7 +2428,7 @@ throw_null_pointer_exception () ...@@ -2429,7 +2428,7 @@ throw_null_pointer_exception ()
if (null_pointer_exc == NULL) if (null_pointer_exc == NULL)
null_pointer_exc = new java::lang::NullPointerException; null_pointer_exc = new java::lang::NullPointerException;
JvThrow (null_pointer_exc); throw null_pointer_exc;
} }
#endif #endif
......
...@@ -118,7 +118,7 @@ java::io::File::getCanonicalPath (void) ...@@ -118,7 +118,7 @@ java::io::File::getCanonicalPath (void)
#ifdef HAVE_REALPATH #ifdef HAVE_REALPATH
if (realpath (buf, buf2) == NULL) if (realpath (buf, buf2) == NULL)
_Jv_Throw (new IOException (JvNewStringLatin1 (strerror (errno)))); throw new IOException (JvNewStringLatin1 (strerror (errno)));
// FIXME: what encoding to assume for file names? This affects many // FIXME: what encoding to assume for file names? This affects many
// calls. // calls.
......
...@@ -54,7 +54,7 @@ java::io::FileDescriptor::sync (void) ...@@ -54,7 +54,7 @@ java::io::FileDescriptor::sync (void)
// as errors. // as errors.
#ifdef HAVE_FSYNC #ifdef HAVE_FSYNC
#else #else
JvThrow (new SyncFailedException (JvNewStringLatin1 (NO_FSYNC_MESSAGE))); throw new SyncFailedException (JvNewStringLatin1 (NO_FSYNC_MESSAGE));
#endif #endif
} }
...@@ -75,9 +75,9 @@ void ...@@ -75,9 +75,9 @@ void
java::io::FileDescriptor::write (jbyteArray b, jint offset, jint len) java::io::FileDescriptor::write (jbyteArray b, jint offset, jint len)
{ {
if (! b) if (! b)
JvThrow (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
if (offset < 0 || len < 0 || offset + len > JvGetArrayLength (b)) if (offset < 0 || len < 0 || offset + len > JvGetArrayLength (b))
JvThrow (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
char *bytes = (char *)elements (b) + offset; char *bytes = (char *)elements (b) + offset;
::diag_write (bytes, len); ::diag_write (bytes, len);
} }
...@@ -96,7 +96,7 @@ java::io::FileDescriptor::seek (jlong pos, jint whence) ...@@ -96,7 +96,7 @@ java::io::FileDescriptor::seek (jlong pos, jint whence)
jlong here = getFilePointer (); jlong here = getFilePointer ();
if ((whence == SET && pos > len) || (whence == CUR && here + pos > len)) if ((whence == SET && pos > len) || (whence == CUR && here + pos > len))
JvThrow (new EOFException); throw new EOFException;
return 0; return 0;
} }
......
...@@ -59,9 +59,9 @@ java::io::FileDescriptor::sync (void) ...@@ -59,9 +59,9 @@ java::io::FileDescriptor::sync (void)
// as errors. // as errors.
#ifdef HAVE_FSYNC #ifdef HAVE_FSYNC
if (::fsync (fd) && errno != EROFS && errno != EINVAL) if (::fsync (fd) && errno != EROFS && errno != EINVAL)
JvThrow (new SyncFailedException (JvNewStringLatin1 (strerror (errno)))); throw new SyncFailedException (JvNewStringLatin1 (strerror (errno)));
#else #else
JvThrow (new SyncFailedException (JvNewStringLatin1 (NO_FSYNC_MESSAGE))); throw new SyncFailedException (JvNewStringLatin1 (NO_FSYNC_MESSAGE));
#endif #endif
} }
...@@ -112,7 +112,7 @@ java::io::FileDescriptor::open (jstring path, jint jflags) ...@@ -112,7 +112,7 @@ java::io::FileDescriptor::open (jstring path, jint jflags)
{ {
char msg[MAXPATHLEN + 200]; char msg[MAXPATHLEN + 200];
sprintf (msg, "%s: %s", buf, strerror (errno)); sprintf (msg, "%s: %s", buf, strerror (errno));
JvThrow (new FileNotFoundException (JvNewStringLatin1 (msg))); throw new FileNotFoundException (JvNewStringLatin1 (msg));
} }
return fd; return fd;
} }
...@@ -127,10 +127,10 @@ java::io::FileDescriptor::write (jint b) ...@@ -127,10 +127,10 @@ java::io::FileDescriptor::write (jint b)
InterruptedIOException *iioe InterruptedIOException *iioe
= new InterruptedIOException (JvNewStringLatin1 ("write interrupted")); = new InterruptedIOException (JvNewStringLatin1 ("write interrupted"));
iioe->bytesTransferred = r == -1 ? 0 : r; iioe->bytesTransferred = r == -1 ? 0 : r;
JvThrow (iioe); throw iioe;
} }
else if (r == -1) else if (r == -1)
JvThrow (new IOException (JvNewStringLatin1 (strerror (errno)))); throw new IOException (JvNewStringLatin1 (strerror (errno)));
// FIXME: loop if r != 1. // FIXME: loop if r != 1.
} }
...@@ -138,9 +138,9 @@ void ...@@ -138,9 +138,9 @@ void
java::io::FileDescriptor::write (jbyteArray b, jint offset, jint len) java::io::FileDescriptor::write (jbyteArray b, jint offset, jint len)
{ {
if (! b) if (! b)
JvThrow (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
if (offset < 0 || len < 0 || offset + len > JvGetArrayLength (b)) if (offset < 0 || len < 0 || offset + len > JvGetArrayLength (b))
JvThrow (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
jbyte *bytes = elements (b) + offset; jbyte *bytes = elements (b) + offset;
int r = ::write (fd, bytes, len); int r = ::write (fd, bytes, len);
if (java::lang::Thread::interrupted()) if (java::lang::Thread::interrupted())
...@@ -148,10 +148,10 @@ java::io::FileDescriptor::write (jbyteArray b, jint offset, jint len) ...@@ -148,10 +148,10 @@ java::io::FileDescriptor::write (jbyteArray b, jint offset, jint len)
InterruptedIOException *iioe InterruptedIOException *iioe
= new InterruptedIOException (JvNewStringLatin1 ("write interrupted")); = new InterruptedIOException (JvNewStringLatin1 ("write interrupted"));
iioe->bytesTransferred = r == -1 ? 0 : r; iioe->bytesTransferred = r == -1 ? 0 : r;
JvThrow (iioe); throw iioe;
} }
else if (r == -1) else if (r == -1)
JvThrow (new IOException (JvNewStringLatin1 (strerror (errno)))); throw new IOException (JvNewStringLatin1 (strerror (errno)));
// FIXME: loop if r != len. // FIXME: loop if r != len.
} }
...@@ -161,7 +161,7 @@ java::io::FileDescriptor::close (void) ...@@ -161,7 +161,7 @@ java::io::FileDescriptor::close (void)
jint save = fd; jint save = fd;
fd = -1; fd = -1;
if (::close (save)) if (::close (save))
JvThrow (new IOException (JvNewStringLatin1 (strerror (errno)))); throw new IOException (JvNewStringLatin1 (strerror (errno)));
} }
jint jint
...@@ -173,11 +173,11 @@ java::io::FileDescriptor::seek (jlong pos, jint whence) ...@@ -173,11 +173,11 @@ java::io::FileDescriptor::seek (jlong pos, jint whence)
jlong here = getFilePointer (); jlong here = getFilePointer ();
if ((whence == SET && pos > len) || (whence == CUR && here + pos > len)) if ((whence == SET && pos > len) || (whence == CUR && here + pos > len))
JvThrow (new EOFException); throw new EOFException;
off_t r = ::lseek (fd, (off_t) pos, whence == SET ? SEEK_SET : SEEK_CUR); off_t r = ::lseek (fd, (off_t) pos, whence == SET ? SEEK_SET : SEEK_CUR);
if (r == -1) if (r == -1)
JvThrow (new IOException (JvNewStringLatin1 (strerror (errno)))); throw new IOException (JvNewStringLatin1 (strerror (errno)));
return r; return r;
} }
...@@ -186,7 +186,7 @@ java::io::FileDescriptor::length (void) ...@@ -186,7 +186,7 @@ java::io::FileDescriptor::length (void)
{ {
struct stat sb; struct stat sb;
if (::fstat (fd, &sb)) if (::fstat (fd, &sb))
JvThrow (new IOException (JvNewStringLatin1 (strerror (errno)))); throw new IOException (JvNewStringLatin1 (strerror (errno)));
return sb.st_size; return sb.st_size;
} }
...@@ -195,7 +195,7 @@ java::io::FileDescriptor::getFilePointer (void) ...@@ -195,7 +195,7 @@ java::io::FileDescriptor::getFilePointer (void)
{ {
off_t r = ::lseek (fd, 0, SEEK_CUR); off_t r = ::lseek (fd, 0, SEEK_CUR);
if (r == -1) if (r == -1)
JvThrow (new IOException (JvNewStringLatin1 (strerror (errno)))); throw new IOException (JvNewStringLatin1 (strerror (errno)));
return r; return r;
} }
...@@ -211,10 +211,10 @@ java::io::FileDescriptor::read (void) ...@@ -211,10 +211,10 @@ java::io::FileDescriptor::read (void)
InterruptedIOException *iioe InterruptedIOException *iioe
= new InterruptedIOException (JvNewStringLatin1 ("read interrupted")); = new InterruptedIOException (JvNewStringLatin1 ("read interrupted"));
iioe->bytesTransferred = r == -1 ? 0 : r; iioe->bytesTransferred = r == -1 ? 0 : r;
JvThrow (iioe); throw iioe;
} }
else if (r == -1) else if (r == -1)
JvThrow (new IOException (JvNewStringLatin1 (strerror (errno)))); throw new IOException (JvNewStringLatin1 (strerror (errno)));
return b & 0xFF; return b & 0xFF;
} }
...@@ -222,10 +222,10 @@ jint ...@@ -222,10 +222,10 @@ jint
java::io::FileDescriptor::read (jbyteArray buffer, jint offset, jint count) java::io::FileDescriptor::read (jbyteArray buffer, jint offset, jint count)
{ {
if (! buffer) if (! buffer)
JvThrow (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
jsize bsize = JvGetArrayLength (buffer); jsize bsize = JvGetArrayLength (buffer);
if (offset < 0 || count < 0 || offset + count > bsize) if (offset < 0 || count < 0 || offset + count > bsize)
JvThrow (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
jbyte *bytes = elements (buffer) + offset; jbyte *bytes = elements (buffer) + offset;
int r = ::read (fd, bytes, count); int r = ::read (fd, bytes, count);
if (r == 0) if (r == 0)
...@@ -235,10 +235,10 @@ java::io::FileDescriptor::read (jbyteArray buffer, jint offset, jint count) ...@@ -235,10 +235,10 @@ java::io::FileDescriptor::read (jbyteArray buffer, jint offset, jint count)
InterruptedIOException *iioe InterruptedIOException *iioe
= new InterruptedIOException (JvNewStringLatin1 ("read interrupted")); = new InterruptedIOException (JvNewStringLatin1 ("read interrupted"));
iioe->bytesTransferred = r == -1 ? 0 : r; iioe->bytesTransferred = r == -1 ? 0 : r;
JvThrow (iioe); throw iioe;
} }
else if (r == -1) else if (r == -1)
JvThrow (new IOException (JvNewStringLatin1 (strerror (errno)))); throw new IOException (JvNewStringLatin1 (strerror (errno)));
return r; return r;
} }
...@@ -271,7 +271,7 @@ java::io::FileDescriptor::available (void) ...@@ -271,7 +271,7 @@ java::io::FileDescriptor::available (void)
if (r == -1) if (r == -1)
{ {
posix_error: posix_error:
JvThrow (new IOException (JvNewStringLatin1 (strerror (errno)))); throw new IOException (JvNewStringLatin1 (strerror (errno)));
} }
// If we didn't get anything, and we have fstat, then see if see if // If we didn't get anything, and we have fstat, then see if see if
...@@ -313,6 +313,6 @@ java::io::FileDescriptor::available (void) ...@@ -313,6 +313,6 @@ java::io::FileDescriptor::available (void)
return (jint) num; return (jint) num;
#else #else
JvThrow (new IOException (JvNewStringLatin1 ("unimplemented"))); throw new IOException (JvNewStringLatin1 ("unimplemented"));
#endif #endif
} }
...@@ -65,7 +65,7 @@ java::io::FileDescriptor::valid (void) { ...@@ -65,7 +65,7 @@ java::io::FileDescriptor::valid (void) {
void void
java::io::FileDescriptor::sync (void) { java::io::FileDescriptor::sync (void) {
if (! FlushFileBuffers ((HANDLE)fd)) if (! FlushFileBuffers ((HANDLE)fd))
JvThrow (new SyncFailedException (JvNewStringLatin1 (winerr ()))); throw new SyncFailedException (JvNewStringLatin1 (winerr ()));
} }
jint jint
...@@ -109,7 +109,7 @@ java::io::FileDescriptor::open (jstring path, jint jflags) { ...@@ -109,7 +109,7 @@ java::io::FileDescriptor::open (jstring path, jint jflags) {
{ {
char msg[MAX_PATH + 1000]; char msg[MAX_PATH + 1000];
sprintf (msg, "%s: %s", buf, winerr ()); sprintf (msg, "%s: %s", buf, winerr ());
JvThrow (new FileNotFoundException (JvNewStringLatin1 (msg))); throw new FileNotFoundException (JvNewStringLatin1 (msg));
} }
return (jint)handle; return (jint)handle;
...@@ -127,13 +127,13 @@ java::io::FileDescriptor::write (jint b) ...@@ -127,13 +127,13 @@ java::io::FileDescriptor::write (jint b)
{ {
InterruptedIOException *iioe = new InterruptedIOException (JvNewStringLatin1 ("write interrupted")); InterruptedIOException *iioe = new InterruptedIOException (JvNewStringLatin1 ("write interrupted"));
iioe->bytesTransferred = bytesWritten; iioe->bytesTransferred = bytesWritten;
JvThrow (iioe); throw iioe;
} }
if (bytesWritten != 1) if (bytesWritten != 1)
JvThrow (new IOException (JvNewStringLatin1 (winerr ()))); throw new IOException (JvNewStringLatin1 (winerr ()));
} }
else else
JvThrow (new IOException (JvNewStringLatin1 (winerr ()))); throw new IOException (JvNewStringLatin1 (winerr ()));
// FIXME: loop until bytesWritten == 1 // FIXME: loop until bytesWritten == 1
} }
...@@ -141,9 +141,9 @@ void ...@@ -141,9 +141,9 @@ void
java::io::FileDescriptor::write(jbyteArray b, jint offset, jint len) java::io::FileDescriptor::write(jbyteArray b, jint offset, jint len)
{ {
if (! b) if (! b)
JvThrow (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
if(offset < 0 || len < 0 || offset + len > JvGetArrayLength (b)) if(offset < 0 || len < 0 || offset + len > JvGetArrayLength (b))
JvThrow (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
jbyte *buf = elements (b) + offset; jbyte *buf = elements (b) + offset;
DWORD bytesWritten; DWORD bytesWritten;
...@@ -153,11 +153,11 @@ java::io::FileDescriptor::write(jbyteArray b, jint offset, jint len) ...@@ -153,11 +153,11 @@ java::io::FileDescriptor::write(jbyteArray b, jint offset, jint len)
{ {
InterruptedIOException *iioe = new InterruptedIOException (JvNewStringLatin1 ("write interrupted")); InterruptedIOException *iioe = new InterruptedIOException (JvNewStringLatin1 ("write interrupted"));
iioe->bytesTransferred = bytesWritten; iioe->bytesTransferred = bytesWritten;
JvThrow (iioe); throw iioe;
} }
} }
else else
JvThrow(new IOException (JvNewStringLatin1 (winerr ()))); throw new IOException (JvNewStringLatin1 (winerr ()));
// FIXME: loop until bytesWritten == len // FIXME: loop until bytesWritten == len
} }
...@@ -167,7 +167,7 @@ java::io::FileDescriptor::close (void) ...@@ -167,7 +167,7 @@ java::io::FileDescriptor::close (void)
HANDLE save = (HANDLE)fd; HANDLE save = (HANDLE)fd;
fd = (jint)INVALID_HANDLE_VALUE; fd = (jint)INVALID_HANDLE_VALUE;
if (! CloseHandle (save)) if (! CloseHandle (save))
JvThrow (new IOException (JvNewStringLatin1 (winerr ()))); throw new IOException (JvNewStringLatin1 (winerr ()));
} }
jint jint
...@@ -179,12 +179,12 @@ java::io::FileDescriptor::seek (jlong pos, jint whence) ...@@ -179,12 +179,12 @@ java::io::FileDescriptor::seek (jlong pos, jint whence)
jlong here = getFilePointer(); jlong here = getFilePointer();
if ((whence == SET && pos > len) || (whence == CUR && here + pos > len)) if ((whence == SET && pos > len) || (whence == CUR && here + pos > len))
JvThrow (new EOFException); throw new EOFException;
LONG high = pos >> 32; LONG high = pos >> 32;
DWORD low = SetFilePointer ((HANDLE)fd, (DWORD)(0xffffffff & pos), &high, whence == SET ? FILE_BEGIN : FILE_CURRENT); DWORD low = SetFilePointer ((HANDLE)fd, (DWORD)(0xffffffff & pos), &high, whence == SET ? FILE_BEGIN : FILE_CURRENT);
if ((low == 0xffffffff) && (GetLastError () != NO_ERROR)) if ((low == 0xffffffff) && (GetLastError () != NO_ERROR))
JvThrow (new IOException (JvNewStringLatin1 (winerr ()))); throw new IOException (JvNewStringLatin1 (winerr ()));
return low; return low;
} }
...@@ -194,7 +194,7 @@ java::io::FileDescriptor::getFilePointer(void) ...@@ -194,7 +194,7 @@ java::io::FileDescriptor::getFilePointer(void)
LONG high = 0; LONG high = 0;
DWORD low = SetFilePointer ((HANDLE)fd, 0, &high, FILE_CURRENT); DWORD low = SetFilePointer ((HANDLE)fd, 0, &high, FILE_CURRENT);
if ((low == 0xffffffff) && (GetLastError() != NO_ERROR)) if ((low == 0xffffffff) && (GetLastError() != NO_ERROR))
JvThrow(new IOException (JvNewStringLatin1 (winerr ()))); throw new IOException (JvNewStringLatin1 (winerr ()));
return (((jlong)high) << 32L) | (jlong)low; return (((jlong)high) << 32L) | (jlong)low;
} }
...@@ -216,7 +216,7 @@ java::io::FileDescriptor::read(void) ...@@ -216,7 +216,7 @@ java::io::FileDescriptor::read(void)
DWORD read; DWORD read;
if (! ReadFile ((HANDLE)fd, &buf, 1, &read, NULL)) if (! ReadFile ((HANDLE)fd, &buf, 1, &read, NULL))
JvThrow (new IOException (JvNewStringLatin1 (winerr ()))); throw new IOException (JvNewStringLatin1 (winerr ()));
if (! read) if (! read)
return -1; return -1;
else else
...@@ -227,17 +227,17 @@ jint ...@@ -227,17 +227,17 @@ jint
java::io::FileDescriptor::read(jbyteArray buffer, jint offset, jint count) java::io::FileDescriptor::read(jbyteArray buffer, jint offset, jint count)
{ {
if (! buffer) if (! buffer)
JvThrow(new java::lang::NullPointerException); throw new java::lang::NullPointerException;
jsize bsize = JvGetArrayLength (buffer); jsize bsize = JvGetArrayLength (buffer);
if (offset < 0 || count < 0 || offset + count > bsize) if (offset < 0 || count < 0 || offset + count > bsize)
JvThrow (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
jbyte *bytes = elements (buffer) + offset; jbyte *bytes = elements (buffer) + offset;
DWORD read; DWORD read;
if (! ReadFile((HANDLE)fd, bytes, count, &read, NULL)) if (! ReadFile((HANDLE)fd, bytes, count, &read, NULL))
JvThrow (new IOException (JvNewStringLatin1 (winerr ()))); throw new IOException (JvNewStringLatin1 (winerr ()));
return (jint)read; return (jint)read;
} }
......
...@@ -104,7 +104,7 @@ java::io::File::getCanonicalPath (void) ...@@ -104,7 +104,7 @@ java::io::File::getCanonicalPath (void)
LPTSTR unused; LPTSTR unused;
if(!GetFullPathName(buf, MAX_PATH, buf2, &unused)) if(!GetFullPathName(buf, MAX_PATH, buf2, &unused))
_Jv_Throw (new IOException (JvNewStringLatin1 ("GetFullPathName failed"))); throw new IOException (JvNewStringLatin1 ("GetFullPathName failed"));
// FIXME: what encoding to assume for file names? This affects many // FIXME: what encoding to assume for file names? This affects many
// calls. // calls.
......
...@@ -75,7 +75,7 @@ jclass ...@@ -75,7 +75,7 @@ jclass
java::lang::Class::forName (jstring className, java::lang::ClassLoader *loader) java::lang::Class::forName (jstring className, java::lang::ClassLoader *loader)
{ {
if (! className) if (! className)
JvThrow (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
jsize length = _Jv_GetStringUTFLength (className); jsize length = _Jv_GetStringUTFLength (className);
char buffer[length]; char buffer[length];
...@@ -93,7 +93,7 @@ java::lang::Class::forName (jstring className, java::lang::ClassLoader *loader) ...@@ -93,7 +93,7 @@ java::lang::Class::forName (jstring className, java::lang::ClassLoader *loader)
if (klass) if (klass)
_Jv_InitClass (klass); _Jv_InitClass (klass);
else else
JvThrow (new java::lang::ClassNotFoundException (className)); throw new java::lang::ClassNotFoundException (className);
return klass; return klass;
} }
...@@ -129,7 +129,7 @@ java::lang::Class::getConstructor (JArray<jclass> *param_types) ...@@ -129,7 +129,7 @@ java::lang::Class::getConstructor (JArray<jclass> *param_types)
return cons; return cons;
} }
} }
JvThrow (new java::lang::NoSuchMethodException); throw new java::lang::NoSuchMethodException;
} }
JArray<java::lang::reflect::Constructor *> * JArray<java::lang::reflect::Constructor *> *
...@@ -194,7 +194,7 @@ java::lang::Class::getDeclaredConstructor (JArray<jclass> *param_types) ...@@ -194,7 +194,7 @@ java::lang::Class::getDeclaredConstructor (JArray<jclass> *param_types)
return cons; return cons;
} }
} }
JvThrow (new java::lang::NoSuchMethodException); throw new java::lang::NoSuchMethodException;
} }
java::lang::reflect::Field * java::lang::reflect::Field *
...@@ -241,7 +241,7 @@ java::lang::Class::getDeclaredField (jstring name) ...@@ -241,7 +241,7 @@ java::lang::Class::getDeclaredField (jstring name)
rfield->name = name; rfield->name = name;
return rfield; return rfield;
} }
JvThrow (new java::lang::NoSuchFieldException (name)); throw new java::lang::NoSuchFieldException (name);
} }
JArray<java::lang::reflect::Field *> * JArray<java::lang::reflect::Field *> *
...@@ -324,7 +324,7 @@ java::lang::Class::getDeclaredMethod (jstring name, ...@@ -324,7 +324,7 @@ java::lang::Class::getDeclaredMethod (jstring name,
return rmethod; return rmethod;
} }
} }
JvThrow (new java::lang::NoSuchMethodException); throw new java::lang::NoSuchMethodException;
} }
JArray<java::lang::reflect::Method *> * JArray<java::lang::reflect::Method *> *
...@@ -500,7 +500,7 @@ java::lang::Class::getMethod (jstring name, JArray<jclass> *param_types) ...@@ -500,7 +500,7 @@ java::lang::Class::getMethod (jstring name, JArray<jclass> *param_types)
} }
} }
} }
JvThrow (new java::lang::NoSuchMethodException); throw new java::lang::NoSuchMethodException;
} }
// This is a very slow implementation, since it re-scans all the // This is a very slow implementation, since it re-scans all the
...@@ -645,19 +645,19 @@ java::lang::Class::newInstance (void) ...@@ -645,19 +645,19 @@ java::lang::Class::newInstance (void)
// FIXME: we special-case one check here just to pass a Plum Hall // FIXME: we special-case one check here just to pass a Plum Hall
// test. Once access checking is implemented, remove this. // test. Once access checking is implemented, remove this.
if (this == &ClassClass) if (this == &ClassClass)
JvThrow (new java::lang::IllegalAccessException); throw new java::lang::IllegalAccessException;
if (isPrimitive () if (isPrimitive ()
|| isInterface () || isInterface ()
|| isArray () || isArray ()
|| java::lang::reflect::Modifier::isAbstract(accflags)) || java::lang::reflect::Modifier::isAbstract(accflags))
JvThrow (new java::lang::InstantiationException); throw new java::lang::InstantiationException;
_Jv_InitClass (this); _Jv_InitClass (this);
_Jv_Method *meth = _Jv_GetMethodLocal (this, init_name, void_signature); _Jv_Method *meth = _Jv_GetMethodLocal (this, init_name, void_signature);
if (! meth) if (! meth)
JvThrow (new java::lang::NoSuchMethodException); throw new java::lang::NoSuchMethodException;
jobject r = JvAllocObject (this); jobject r = JvAllocObject (this);
((void (*) (jobject)) meth->ncode) (r); ((void (*) (jobject)) meth->ncode) (r);
...@@ -725,7 +725,7 @@ java::lang::Class::initializeClass (void) ...@@ -725,7 +725,7 @@ java::lang::Class::initializeClass (void)
if (state == JV_STATE_ERROR) if (state == JV_STATE_ERROR)
{ {
_Jv_MonitorExit (this); _Jv_MonitorExit (this);
JvThrow (new java::lang::NoClassDefFoundError); throw new java::lang::NoClassDefFoundError;
} }
// Step 6. // Step 6.
...@@ -776,7 +776,7 @@ java::lang::Class::initializeClass (void) ...@@ -776,7 +776,7 @@ java::lang::Class::initializeClass (void)
state = JV_STATE_ERROR; state = JV_STATE_ERROR;
notifyAll (); notifyAll ();
_Jv_MonitorExit (this); _Jv_MonitorExit (this);
JvThrow (except); throw except;
} }
_Jv_MonitorEnter (this); _Jv_MonitorEnter (this);
...@@ -880,21 +880,20 @@ _Jv_LookupInterfaceMethod (jclass klass, _Jv_Utf8Const *name, ...@@ -880,21 +880,20 @@ _Jv_LookupInterfaceMethod (jclass klass, _Jv_Utf8Const *name,
continue; continue;
if (Modifier::isStatic(meth->accflags)) if (Modifier::isStatic(meth->accflags))
JvThrow (new java::lang::IncompatibleClassChangeError throw new java::lang::IncompatibleClassChangeError
(_Jv_GetMethodString (klass, meth->name))); (_Jv_GetMethodString (klass, meth->name));
if (Modifier::isAbstract(meth->accflags)) if (Modifier::isAbstract(meth->accflags))
JvThrow (new java::lang::AbstractMethodError throw new java::lang::AbstractMethodError
(_Jv_GetMethodString (klass, meth->name))); (_Jv_GetMethodString (klass, meth->name));
if (! Modifier::isPublic(meth->accflags)) if (! Modifier::isPublic(meth->accflags))
JvThrow (new java::lang::IllegalAccessError throw new java::lang::IllegalAccessError
(_Jv_GetMethodString (klass, meth->name))); (_Jv_GetMethodString (klass, meth->name));
_Jv_AddMethodToCache (klass, meth); _Jv_AddMethodToCache (klass, meth);
return meth->ncode; return meth->ncode;
} }
JvThrow (new java::lang::IncompatibleClassChangeError); throw new java::lang::IncompatibleClassChangeError;
return NULL; // Placate compiler.
} }
// Fast interface method lookup by index. // Fast interface method lookup by index.
...@@ -988,11 +987,11 @@ _Jv_CheckCast (jclass c, jobject obj) ...@@ -988,11 +987,11 @@ _Jv_CheckCast (jclass c, jobject obj)
{ {
if (__builtin_expect if (__builtin_expect
(obj != NULL && ! _Jv_IsAssignableFrom(c, JV_CLASS (obj)), false)) (obj != NULL && ! _Jv_IsAssignableFrom(c, JV_CLASS (obj)), false))
JvThrow (new java::lang::ClassCastException throw new java::lang::ClassCastException
((new java::lang::StringBuffer ((new java::lang::StringBuffer
(obj->getClass()->getName()))->append (obj->getClass()->getName()))->append
(JvNewStringUTF(" cannot be cast to "))->append (JvNewStringUTF(" cannot be cast to "))->append
(c->getName())->toString())); (c->getName())->toString());
return obj; return obj;
} }
...@@ -1007,7 +1006,7 @@ _Jv_CheckArrayStore (jobject arr, jobject obj) ...@@ -1007,7 +1006,7 @@ _Jv_CheckArrayStore (jobject arr, jobject obj)
jclass obj_class = JV_CLASS (obj); jclass obj_class = JV_CLASS (obj);
if (__builtin_expect if (__builtin_expect
(! _Jv_IsAssignableFrom (elt_class, obj_class), false)) (! _Jv_IsAssignableFrom (elt_class, obj_class), false))
JvThrow (new java::lang::ArrayStoreException); throw new java::lang::ArrayStoreException;
} }
} }
...@@ -1214,7 +1213,7 @@ _Jv_GetMethodString (jclass klass, _Jv_Utf8Const *name) ...@@ -1214,7 +1213,7 @@ _Jv_GetMethodString (jclass klass, _Jv_Utf8Const *name)
void void
_Jv_ThrowNoSuchMethodError () _Jv_ThrowNoSuchMethodError ()
{ {
JvThrow (new java::lang::NoSuchMethodError ()); throw new java::lang::NoSuchMethodError;
} }
// Each superinterface of a class (i.e. each interface that the class // Each superinterface of a class (i.e. each interface that the class
...@@ -1257,14 +1256,14 @@ _Jv_AppendPartialITable (jclass klass, jclass iface, void **itable, ...@@ -1257,14 +1256,14 @@ _Jv_AppendPartialITable (jclass klass, jclass iface, void **itable,
else if (meth) else if (meth)
{ {
if (Modifier::isStatic(meth->accflags)) if (Modifier::isStatic(meth->accflags))
JvThrow (new java::lang::IncompatibleClassChangeError throw new java::lang::IncompatibleClassChangeError
(_Jv_GetMethodString (klass, meth->name))); (_Jv_GetMethodString (klass, meth->name));
if (Modifier::isAbstract(meth->accflags)) if (Modifier::isAbstract(meth->accflags))
JvThrow (new java::lang::AbstractMethodError throw new java::lang::AbstractMethodError
(_Jv_GetMethodString (klass, meth->name))); (_Jv_GetMethodString (klass, meth->name));
if (! Modifier::isPublic(meth->accflags)) if (! Modifier::isPublic(meth->accflags))
JvThrow (new java::lang::IllegalAccessError throw new java::lang::IllegalAccessError
(_Jv_GetMethodString (klass, meth->name))); (_Jv_GetMethodString (klass, meth->name));
itable[pos] = meth->ncode; itable[pos] = meth->ncode;
} }
...@@ -1414,5 +1413,5 @@ java::lang::Class::getPrivateMethod (jstring name, JArray<jclass> *param_types) ...@@ -1414,5 +1413,5 @@ java::lang::Class::getPrivateMethod (jstring name, JArray<jclass> *param_types)
} }
} }
} }
JvThrow (new java::lang::NoSuchMethodException); throw new java::lang::NoSuchMethodException;
} }
// natClassLoader.cc - Implementation of java.lang.ClassLoader native methods. // natClassLoader.cc - Implementation of java.lang.ClassLoader native methods.
/* Copyright (C) 1999, 2000 Free Software Foundation /* Copyright (C) 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -80,8 +80,8 @@ java::lang::ClassLoader::defineClass0 (jstring name, ...@@ -80,8 +80,8 @@ java::lang::ClassLoader::defineClass0 (jstring name,
_Jv_Utf8Const * name2 = _Jv_makeUtf8Const (name); _Jv_Utf8Const * name2 = _Jv_makeUtf8Const (name);
if (! _Jv_VerifyClassName (name2)) if (! _Jv_VerifyClassName (name2))
JvThrow (new java::lang::ClassFormatError throw new java::lang::ClassFormatError
(JvNewStringLatin1 ("erroneous class name"))); (JvNewStringLatin1 ("erroneous class name"));
klass->name = name2; klass->name = name2;
} }
...@@ -104,7 +104,10 @@ java::lang::ClassLoader::defineClass0 (jstring name, ...@@ -104,7 +104,10 @@ java::lang::ClassLoader::defineClass0 (jstring name,
// anything but ClassNotFoundException, // anything but ClassNotFoundException,
// or some kind of Error. // or some kind of Error.
JvThrow (ex); // FIXME: Rewrite this as a cleanup instead of
// as a catch handler.
throw ex;
} }
// if everything proceeded sucessfully, we're loaded. // if everything proceeded sucessfully, we're loaded.
...@@ -151,9 +154,7 @@ _Jv_WaitForState (jclass klass, int state) ...@@ -151,9 +154,7 @@ _Jv_WaitForState (jclass klass, int state)
_Jv_MonitorExit (klass); _Jv_MonitorExit (klass);
if (klass->state == JV_STATE_ERROR) if (klass->state == JV_STATE_ERROR)
{ throw new java::lang::LinkageError;
_Jv_Throw (new java::lang::LinkageError ());
}
} }
// Finish linking a class. Only called from ClassLoader::resolveClass. // Finish linking a class. Only called from ClassLoader::resolveClass.
...@@ -253,7 +254,7 @@ _Jv_PrepareCompiledClass (jclass klass) ...@@ -253,7 +254,7 @@ _Jv_PrepareCompiledClass (jclass klass)
if (! found) if (! found)
{ {
jstring str = _Jv_NewStringUTF (name->data); jstring str = _Jv_NewStringUTF (name->data);
JvThrow (new java::lang::ClassNotFoundException (str)); throw new java::lang::ClassNotFoundException (str);
} }
pool->data[index].clazz = found; pool->data[index].clazz = found;
......
...@@ -184,5 +184,5 @@ java::lang::Double::parseDouble(jstring str) ...@@ -184,5 +184,5 @@ java::lang::Double::parseDouble(jstring str)
if (endptr == data + blength) if (endptr == data + blength)
return val; return val;
} }
_Jv_Throw (new NumberFormatException); throw new NumberFormatException;
} }
// natObject.cc - Implementation of the Object class. // natObject.cc - Implementation of the Object class.
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation /* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -90,7 +90,7 @@ java::lang::Object::clone (void) ...@@ -90,7 +90,7 @@ java::lang::Object::clone (void)
else else
{ {
if (! java::lang::Cloneable::class$.isAssignableFrom(klass)) if (! java::lang::Cloneable::class$.isAssignableFrom(klass))
JvThrow (new CloneNotSupportedException); throw new CloneNotSupportedException;
size = klass->size(); size = klass->size();
r = JvAllocObject (klass, size); r = JvAllocObject (klass, size);
...@@ -173,8 +173,8 @@ java::lang::Object::notify (void) ...@@ -173,8 +173,8 @@ java::lang::Object::notify (void)
sync_init (); sync_init ();
_Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info; _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
if (__builtin_expect (_Jv_CondNotify (&si->condition, &si->mutex), false)) if (__builtin_expect (_Jv_CondNotify (&si->condition, &si->mutex), false))
JvThrow (new IllegalMonitorStateException(JvNewStringLatin1 throw new IllegalMonitorStateException(JvNewStringLatin1
("current thread not owner"))); ("current thread not owner"));
} }
void void
...@@ -184,8 +184,8 @@ java::lang::Object::notifyAll (void) ...@@ -184,8 +184,8 @@ java::lang::Object::notifyAll (void)
sync_init (); sync_init ();
_Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info; _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
if (__builtin_expect (_Jv_CondNotifyAll (&si->condition, &si->mutex), false)) if (__builtin_expect (_Jv_CondNotifyAll (&si->condition, &si->mutex), false))
JvThrow (new IllegalMonitorStateException(JvNewStringLatin1 throw new IllegalMonitorStateException(JvNewStringLatin1
("current thread not owner"))); ("current thread not owner"));
} }
void void
...@@ -194,16 +194,16 @@ java::lang::Object::wait (jlong timeout, jint nanos) ...@@ -194,16 +194,16 @@ java::lang::Object::wait (jlong timeout, jint nanos)
if (__builtin_expect (INIT_NEEDED (this), false)) if (__builtin_expect (INIT_NEEDED (this), false))
sync_init (); sync_init ();
if (__builtin_expect (timeout < 0 || nanos < 0 || nanos > 999999, false)) if (__builtin_expect (timeout < 0 || nanos < 0 || nanos > 999999, false))
JvThrow (new IllegalArgumentException); throw new IllegalArgumentException;
_Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info; _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
switch (_Jv_CondWait (&si->condition, &si->mutex, timeout, nanos)) switch (_Jv_CondWait (&si->condition, &si->mutex, timeout, nanos))
{ {
case _JV_NOT_OWNER: case _JV_NOT_OWNER:
JvThrow (new IllegalMonitorStateException (JvNewStringLatin1 throw new IllegalMonitorStateException (JvNewStringLatin1
("current thread not owner"))); ("current thread not owner"));
case _JV_INTERRUPTED: case _JV_INTERRUPTED:
if (Thread::interrupted ()) if (Thread::interrupted ())
JvThrow (new InterruptedException); throw new InterruptedException;
} }
} }
...@@ -224,7 +224,7 @@ _Jv_MonitorEnter (jobject obj) ...@@ -224,7 +224,7 @@ _Jv_MonitorEnter (jobject obj)
{ {
#ifndef HANDLE_SEGV #ifndef HANDLE_SEGV
if (__builtin_expect (! obj, false)) if (__builtin_expect (! obj, false))
JvThrow (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
#endif #endif
if (__builtin_expect (INIT_NEEDED (obj), false)) if (__builtin_expect (INIT_NEEDED (obj), false))
obj->sync_init (); obj->sync_init ();
...@@ -239,7 +239,7 @@ _Jv_MonitorExit (jobject obj) ...@@ -239,7 +239,7 @@ _Jv_MonitorExit (jobject obj)
JvAssert (! INIT_NEEDED (obj)); JvAssert (! INIT_NEEDED (obj));
_Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info; _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info;
if (__builtin_expect (_Jv_MutexUnlock (&si->mutex), false)) if (__builtin_expect (_Jv_MutexUnlock (&si->mutex), false))
JvThrow (new java::lang::IllegalMonitorStateException); throw new java::lang::IllegalMonitorStateException;
return 0; return 0;
} }
......
...@@ -58,7 +58,7 @@ java::lang::ConcreteProcess::exitValue (void) ...@@ -58,7 +58,7 @@ java::lang::ConcreteProcess::exitValue (void)
if (r == -1) if (r == -1)
{ {
jstring x = JvNewStringLatin1 (strerror (errno)); jstring x = JvNewStringLatin1 (strerror (errno));
_Jv_Throw (new IllegalThreadStateException (x)); throw new IllegalThreadStateException (x);
} }
hasExited = true; hasExited = true;
...@@ -85,7 +85,7 @@ java::lang::ConcreteProcess::waitFor (void) ...@@ -85,7 +85,7 @@ java::lang::ConcreteProcess::waitFor (void)
} }
if (java::lang::Thread::interrupted()) if (java::lang::Thread::interrupted())
_Jv_Throw (new InterruptedException (JvNewStringLatin1 ("wait interrupted"))); throw new InterruptedException (JvNewStringLatin1 ("wait interrupted"));
} }
return status; return status;
......
...@@ -136,7 +136,7 @@ java::lang::Runtime::_load (jstring path, jboolean do_search) ...@@ -136,7 +136,7 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
const char *msg = lt_dlerror (); const char *msg = lt_dlerror ();
jstring str = path->concat (JvNewStringLatin1 (": ")); jstring str = path->concat (JvNewStringLatin1 (": "));
str = str->concat (JvNewStringLatin1 (msg)); str = str->concat (JvNewStringLatin1 (msg));
_Jv_Throw (new UnsatisfiedLinkError (str)); throw new UnsatisfiedLinkError (str);
} }
add_library (h); add_library (h);
...@@ -154,14 +154,14 @@ java::lang::Runtime::_load (jstring path, jboolean do_search) ...@@ -154,14 +154,14 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2) if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2)
{ {
// FIXME: unload the library. // FIXME: unload the library.
_Jv_Throw (new UnsatisfiedLinkError (JvNewStringLatin1 ("unrecognized version from JNI_OnLoad"))); throw new UnsatisfiedLinkError (JvNewStringLatin1 ("unrecognized version from JNI_OnLoad"));
} }
} }
#else #else
_Jv_Throw (new UnknownError throw new UnknownError
(JvNewStringLatin1 (do_search (JvNewStringLatin1 (do_search
? "Runtime.loadLibrary not implemented" ? "Runtime.loadLibrary not implemented"
: "Runtime.load not implemented"))); : "Runtime.load not implemented"));
#endif /* USE_LTDL */ #endif /* USE_LTDL */
} }
......
...@@ -378,11 +378,11 @@ java::lang::String::init(jcharArray chars, jint offset, jint count, ...@@ -378,11 +378,11 @@ java::lang::String::init(jcharArray chars, jint offset, jint count,
jboolean dont_copy) jboolean dont_copy)
{ {
if (! chars) if (! chars)
JvThrow (new NullPointerException); throw new NullPointerException;
jsize data_size = JvGetArrayLength (chars); jsize data_size = JvGetArrayLength (chars);
if (offset < 0 || count < 0 || offset + count < 0 if (offset < 0 || count < 0 || offset + count < 0
|| offset + count > data_size) || offset + count > data_size)
JvThrow (new StringIndexOutOfBoundsException()); throw new StringIndexOutOfBoundsException;
jcharArray array; jcharArray array;
jchar *pdst; jchar *pdst;
if (! dont_copy) if (! dont_copy)
...@@ -408,11 +408,11 @@ java::lang::String::init(jbyteArray ascii, jint hibyte, jint offset, ...@@ -408,11 +408,11 @@ java::lang::String::init(jbyteArray ascii, jint hibyte, jint offset,
jint count) jint count)
{ {
if (! ascii) if (! ascii)
JvThrow (new NullPointerException); throw new NullPointerException;
jsize data_size = JvGetArrayLength (ascii); jsize data_size = JvGetArrayLength (ascii);
if (offset < 0 || count < 0 || offset + count < 0 if (offset < 0 || count < 0 || offset + count < 0
|| offset + count > data_size) || offset + count > data_size)
JvThrow (new java::lang::StringIndexOutOfBoundsException()); throw new java::lang::StringIndexOutOfBoundsException;
jcharArray array = JvNewCharArray(count); jcharArray array = JvNewCharArray(count);
jbyte *psrc = elements (ascii) + offset; jbyte *psrc = elements (ascii) + offset;
jchar *pdst = elements (array); jchar *pdst = elements (array);
...@@ -431,11 +431,11 @@ java::lang::String::init (jbyteArray bytes, jint offset, jint count, ...@@ -431,11 +431,11 @@ java::lang::String::init (jbyteArray bytes, jint offset, jint count,
jstring encoding) jstring encoding)
{ {
if (! bytes) if (! bytes)
JvThrow (new NullPointerException); throw new NullPointerException;
jsize data_size = JvGetArrayLength (bytes); jsize data_size = JvGetArrayLength (bytes);
if (offset < 0 || count < 0 || offset + count < 0 if (offset < 0 || count < 0 || offset + count < 0
|| offset + count > data_size) || offset + count > data_size)
JvThrow (new StringIndexOutOfBoundsException); throw new StringIndexOutOfBoundsException;
jcharArray array = JvNewCharArray (count); jcharArray array = JvNewCharArray (count);
gnu::gcj::convert::BytesToUnicode *converter gnu::gcj::convert::BytesToUnicode *converter
= gnu::gcj::convert::BytesToUnicode::getDecoder(encoding); = gnu::gcj::convert::BytesToUnicode::getDecoder(encoding);
...@@ -493,7 +493,7 @@ jchar ...@@ -493,7 +493,7 @@ jchar
java::lang::String::charAt(jint i) java::lang::String::charAt(jint i)
{ {
if (i < 0 || i >= count) if (i < 0 || i >= count)
JvThrow (new java::lang::StringIndexOutOfBoundsException()); throw new java::lang::StringIndexOutOfBoundsException;
return JvGetStringChars(this)[i]; return JvGetStringChars(this)[i];
} }
...@@ -504,7 +504,7 @@ java::lang::String::getChars(jint srcBegin, jint srcEnd, ...@@ -504,7 +504,7 @@ java::lang::String::getChars(jint srcBegin, jint srcEnd,
jint dst_length = JvGetArrayLength (dst); jint dst_length = JvGetArrayLength (dst);
if (srcBegin < 0 || srcBegin > srcEnd || srcEnd > count if (srcBegin < 0 || srcBegin > srcEnd || srcEnd > count
|| dstBegin < 0 || dstBegin + (srcEnd-srcBegin) > dst_length) || dstBegin < 0 || dstBegin + (srcEnd-srcBegin) > dst_length)
JvThrow (new java::lang::StringIndexOutOfBoundsException()); throw new java::lang::StringIndexOutOfBoundsException;
jchar *dPtr = elements (dst) + dstBegin; jchar *dPtr = elements (dst) + dstBegin;
jchar *sPtr = JvGetStringChars (this) + srcBegin; jchar *sPtr = JvGetStringChars (this) + srcBegin;
jint i = srcEnd-srcBegin; jint i = srcEnd-srcBegin;
...@@ -554,7 +554,7 @@ java::lang::String::getBytes(jint srcBegin, jint srcEnd, ...@@ -554,7 +554,7 @@ java::lang::String::getBytes(jint srcBegin, jint srcEnd,
jint dst_length = JvGetArrayLength (dst); jint dst_length = JvGetArrayLength (dst);
if (srcBegin < 0 || srcBegin > srcEnd || srcEnd > count if (srcBegin < 0 || srcBegin > srcEnd || srcEnd > count
|| dstBegin < 0 || dstBegin + (srcEnd-srcBegin) > dst_length) || dstBegin < 0 || dstBegin + (srcEnd-srcBegin) > dst_length)
JvThrow (new java::lang::StringIndexOutOfBoundsException()); throw new java::lang::StringIndexOutOfBoundsException;
jbyte *dPtr = elements (dst) + dstBegin; jbyte *dPtr = elements (dst) + dstBegin;
jchar *sPtr = JvGetStringChars (this) + srcBegin; jchar *sPtr = JvGetStringChars (this) + srcBegin;
jint i = srcEnd-srcBegin; jint i = srcEnd-srcBegin;
...@@ -745,7 +745,7 @@ jstring ...@@ -745,7 +745,7 @@ jstring
java::lang::String::substring (jint beginIndex, jint endIndex) java::lang::String::substring (jint beginIndex, jint endIndex)
{ {
if (beginIndex < 0 || endIndex > count || beginIndex > endIndex) if (beginIndex < 0 || endIndex > count || beginIndex > endIndex)
JvThrow (new StringIndexOutOfBoundsException()); throw new StringIndexOutOfBoundsException;
if (beginIndex == 0 && endIndex == count) if (beginIndex == 0 && endIndex == count)
return this; return this;
jint newCount = endIndex - beginIndex; jint newCount = endIndex - beginIndex;
...@@ -944,7 +944,7 @@ java::lang::String::valueOf(jcharArray data, jint offset, jint count) ...@@ -944,7 +944,7 @@ java::lang::String::valueOf(jcharArray data, jint offset, jint count)
{ {
jint data_length = JvGetArrayLength (data); jint data_length = JvGetArrayLength (data);
if (offset < 0 || count < 0 || offset+count > data_length) if (offset < 0 || count < 0 || offset+count > data_length)
JvThrow (new java::lang::IndexOutOfBoundsException()); throw new java::lang::IndexOutOfBoundsException;
jstring result = JvAllocString(count); jstring result = JvAllocString(count);
jchar *sPtr = elements (data) + offset; jchar *sPtr = elements (data) + offset;
jchar *dPtr = JvGetStringChars(result); jchar *dPtr = JvGetStringChars(result);
......
...@@ -90,7 +90,7 @@ java::lang::System::arraycopy (jobject src, jint src_offset, ...@@ -90,7 +90,7 @@ java::lang::System::arraycopy (jobject src, jint src_offset,
jint count) jint count)
{ {
if (! src || ! dst) if (! src || ! dst)
_Jv_Throw (new NullPointerException); throw new NullPointerException;
jclass src_c = src->getClass(); jclass src_c = src->getClass();
jclass dst_c = dst->getClass(); jclass dst_c = dst->getClass();
...@@ -100,14 +100,14 @@ java::lang::System::arraycopy (jobject src, jint src_offset, ...@@ -100,14 +100,14 @@ java::lang::System::arraycopy (jobject src, jint src_offset,
if (! src_c->isArray() || ! dst_c->isArray() if (! src_c->isArray() || ! dst_c->isArray()
|| src_comp->isPrimitive() != dst_comp->isPrimitive() || src_comp->isPrimitive() != dst_comp->isPrimitive()
|| (src_comp->isPrimitive() && src_comp != dst_comp)) || (src_comp->isPrimitive() && src_comp != dst_comp))
_Jv_Throw (new ArrayStoreException); throw new ArrayStoreException;
__JArray *src_a = (__JArray *) src; __JArray *src_a = (__JArray *) src;
__JArray *dst_a = (__JArray *) dst; __JArray *dst_a = (__JArray *) dst;
if (src_offset < 0 || dst_offset < 0 || count < 0 if (src_offset < 0 || dst_offset < 0 || count < 0
|| src_offset + count > src_a->length || src_offset + count > src_a->length
|| dst_offset + count > dst_a->length) || dst_offset + count > dst_a->length)
_Jv_Throw (new ArrayIndexOutOfBoundsException); throw new ArrayIndexOutOfBoundsException;
// Do-nothing cases. // Do-nothing cases.
if ((src == dst && src_offset == dst_offset) if ((src == dst && src_offset == dst_offset)
...@@ -149,7 +149,7 @@ java::lang::System::arraycopy (jobject src, jint src_offset, ...@@ -149,7 +149,7 @@ java::lang::System::arraycopy (jobject src, jint src_offset,
{ {
if (*src_elts if (*src_elts
&& ! dst_comp->isAssignableFrom((*src_elts)->getClass())) && ! dst_comp->isAssignableFrom((*src_elts)->getClass()))
_Jv_Throw (new ArrayStoreException); throw new ArrayStoreException;
*dst_elts++ = *src_elts++; *dst_elts++ = *src_elts++;
} }
} }
......
...@@ -116,7 +116,7 @@ void ...@@ -116,7 +116,7 @@ void
java::lang::Thread::join (jlong millis, jint nanos) java::lang::Thread::join (jlong millis, jint nanos)
{ {
if (millis < 0 || nanos < 0 || nanos > 999999) if (millis < 0 || nanos < 0 || nanos > 999999)
_Jv_Throw (new IllegalArgumentException); throw new IllegalArgumentException;
Thread *current = currentThread (); Thread *current = currentThread ();
...@@ -135,7 +135,7 @@ java::lang::Thread::join (jlong millis, jint nanos) ...@@ -135,7 +135,7 @@ java::lang::Thread::join (jlong millis, jint nanos)
_Jv_MutexUnlock (&nt->join_mutex); _Jv_MutexUnlock (&nt->join_mutex);
if (current->isInterrupted (true)) if (current->isInterrupted (true))
_Jv_Throw (new InterruptedException); throw new InterruptedException;
} }
void void
...@@ -150,7 +150,7 @@ java::lang::Thread::setPriority (jint newPriority) ...@@ -150,7 +150,7 @@ java::lang::Thread::setPriority (jint newPriority)
{ {
checkAccess (); checkAccess ();
if (newPriority < MIN_PRIORITY || newPriority > MAX_PRIORITY) if (newPriority < MIN_PRIORITY || newPriority > MAX_PRIORITY)
_Jv_Throw (new IllegalArgumentException); throw new IllegalArgumentException;
jint gmax = group->getMaxPriority(); jint gmax = group->getMaxPriority();
if (newPriority > gmax) if (newPriority > gmax)
...@@ -165,7 +165,7 @@ void ...@@ -165,7 +165,7 @@ void
java::lang::Thread::sleep (jlong millis, jint nanos) java::lang::Thread::sleep (jlong millis, jint nanos)
{ {
if (millis < 0 || nanos < 0 || nanos > 999999) if (millis < 0 || nanos < 0 || nanos > 999999)
_Jv_Throw (new IllegalArgumentException); throw new IllegalArgumentException;
if (millis == 0 && nanos == 0) if (millis == 0 && nanos == 0)
++nanos; ++nanos;
...@@ -180,7 +180,7 @@ java::lang::Thread::sleep (jlong millis, jint nanos) ...@@ -180,7 +180,7 @@ java::lang::Thread::sleep (jlong millis, jint nanos)
_Jv_MutexUnlock (&nt->join_mutex); _Jv_MutexUnlock (&nt->join_mutex);
if (current->isInterrupted (true)) if (current->isInterrupted (true))
_Jv_Throw (new InterruptedException); throw new InterruptedException;
} }
void void
...@@ -299,7 +299,7 @@ java::lang::Thread::start (void) ...@@ -299,7 +299,7 @@ java::lang::Thread::start (void)
// Its illegal to re-start() a thread, even if its dead. // Its illegal to re-start() a thread, even if its dead.
if (!startable_flag) if (!startable_flag)
_Jv_Throw (new IllegalThreadStateException); throw new IllegalThreadStateException;
alive_flag = true; alive_flag = true;
startable_flag = false; startable_flag = false;
...@@ -310,16 +310,16 @@ java::lang::Thread::start (void) ...@@ -310,16 +310,16 @@ java::lang::Thread::start (void)
void void
java::lang::Thread::stop (java::lang::Throwable *) java::lang::Thread::stop (java::lang::Throwable *)
{ {
_Jv_Throw (new UnsupportedOperationException throw new UnsupportedOperationException
(JvNewStringLatin1 ("java::lang::Thread::stop unimplemented"))); (JvNewStringLatin1 ("java::lang::Thread::stop unimplemented"));
} }
void void
java::lang::Thread::suspend (void) java::lang::Thread::suspend (void)
{ {
checkAccess (); checkAccess ();
_Jv_Throw (new UnsupportedOperationException throw new UnsupportedOperationException
(JvNewStringLatin1 ("java::lang::Thread::suspend unimplemented"))); (JvNewStringLatin1 ("java::lang::Thread::suspend unimplemented"));
} }
void void
......
// natField.cc - Implementation of java.lang.reflect.Field native methods. // natField.cc - Implementation of java.lang.reflect.Field native methods.
/* Copyright (C) 1999, 2000 Free Software Foundation /* Copyright (C) 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -64,7 +64,7 @@ java::lang::reflect::Array::getLength (jobject array) ...@@ -64,7 +64,7 @@ java::lang::reflect::Array::getLength (jobject array)
{ {
jclass arrayType = array->getClass(); jclass arrayType = array->getClass();
if (! arrayType->isArray ()) if (! arrayType->isArray ())
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
return ((__JArray*) array)->length; return ((__JArray*) array)->length;
} }
...@@ -73,7 +73,7 @@ java::lang::reflect::Array::getElementType (jobject array, jint index) ...@@ -73,7 +73,7 @@ java::lang::reflect::Array::getElementType (jobject array, jint index)
{ {
jclass arrayType = array->getClass(); jclass arrayType = array->getClass();
if (! arrayType->isArray ()) if (! arrayType->isArray ())
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
jint length = ((__JArray*) array)->length; jint length = ((__JArray*) array)->length;
if ((_Jv_uint) index >= (_Jv_uint) length) if ((_Jv_uint) index >= (_Jv_uint) length)
_Jv_ThrowBadArrayIndex(index); _Jv_ThrowBadArrayIndex(index);
...@@ -86,7 +86,7 @@ java::lang::reflect::Array::getBoolean (jobject array, jint index) ...@@ -86,7 +86,7 @@ java::lang::reflect::Array::getBoolean (jobject array, jint index)
jclass elementType = getElementType (array, index); jclass elementType = getElementType (array, index);
if (elementType == JvPrimClass (boolean)) if (elementType == JvPrimClass (boolean))
return elements ((jbooleanArray) array) [index]; return elements ((jbooleanArray) array) [index];
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
jchar jchar
...@@ -95,7 +95,7 @@ java::lang::reflect::Array::getChar (jobject array, jint index) ...@@ -95,7 +95,7 @@ java::lang::reflect::Array::getChar (jobject array, jint index)
jclass elementType = getElementType (array, index); jclass elementType = getElementType (array, index);
if (elementType == JvPrimClass (char)) if (elementType == JvPrimClass (char))
return elements ((jcharArray) array) [index]; return elements ((jcharArray) array) [index];
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
jbyte jbyte
...@@ -104,7 +104,7 @@ java::lang::reflect::Array::getByte (jobject array, jint index) ...@@ -104,7 +104,7 @@ java::lang::reflect::Array::getByte (jobject array, jint index)
jclass elementType = getElementType (array, index); jclass elementType = getElementType (array, index);
if (elementType == JvPrimClass (byte)) if (elementType == JvPrimClass (byte))
return elements ((jbyteArray) array) [index]; return elements ((jbyteArray) array) [index];
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
jshort jshort
...@@ -115,7 +115,7 @@ java::lang::reflect::Array::getShort (jobject array, jint index) ...@@ -115,7 +115,7 @@ java::lang::reflect::Array::getShort (jobject array, jint index)
return elements ((jshortArray) array) [index]; return elements ((jshortArray) array) [index];
if (elementType == JvPrimClass (byte)) if (elementType == JvPrimClass (byte))
return elements ((jbyteArray) array) [index]; return elements ((jbyteArray) array) [index];
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
jint jint
...@@ -130,7 +130,7 @@ java::lang::reflect::Array::getInt (jobject array, jint index) ...@@ -130,7 +130,7 @@ java::lang::reflect::Array::getInt (jobject array, jint index)
return elements ((jbyteArray) array) [index]; return elements ((jbyteArray) array) [index];
if (elementType == JvPrimClass (char)) if (elementType == JvPrimClass (char))
return elements ((jcharArray) array) [index]; return elements ((jcharArray) array) [index];
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
jlong jlong
...@@ -147,7 +147,7 @@ java::lang::reflect::Array::getLong (jobject array, jint index) ...@@ -147,7 +147,7 @@ java::lang::reflect::Array::getLong (jobject array, jint index)
return elements ((jbyteArray) array) [index]; return elements ((jbyteArray) array) [index];
if (elementType == JvPrimClass (char)) if (elementType == JvPrimClass (char))
return elements ((jcharArray) array) [index]; return elements ((jcharArray) array) [index];
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
jfloat jfloat
...@@ -166,7 +166,7 @@ java::lang::reflect::Array::getFloat (jobject array, jint index) ...@@ -166,7 +166,7 @@ java::lang::reflect::Array::getFloat (jobject array, jint index)
return elements ((jbyteArray) array) [index]; return elements ((jbyteArray) array) [index];
if (elementType == JvPrimClass (char)) if (elementType == JvPrimClass (char))
return elements ((jcharArray) array) [index]; return elements ((jcharArray) array) [index];
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
jdouble jdouble
...@@ -187,7 +187,7 @@ java::lang::reflect::Array::getDouble (jobject array, jint index) ...@@ -187,7 +187,7 @@ java::lang::reflect::Array::getDouble (jobject array, jint index)
return elements ((jbyteArray) array) [index]; return elements ((jbyteArray) array) [index];
if (elementType == JvPrimClass (char)) if (elementType == JvPrimClass (char))
return elements ((jcharArray) array) [index]; return elements ((jcharArray) array) [index];
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
jobject jobject
...@@ -218,7 +218,7 @@ java::lang::reflect::Array::get (jobject array, jint index) ...@@ -218,7 +218,7 @@ java::lang::reflect::Array::get (jobject array, jint index)
else else
return java::lang::Boolean::FALSE; return java::lang::Boolean::FALSE;
} }
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
void void
...@@ -236,7 +236,7 @@ java::lang::reflect::Array::setChar (jobject array, jint index, jchar value) ...@@ -236,7 +236,7 @@ java::lang::reflect::Array::setChar (jobject array, jint index, jchar value)
else if (elementType == JvPrimClass (double)) else if (elementType == JvPrimClass (double))
elements ((jdoubleArray) array) [index] = value; elements ((jdoubleArray) array) [index] = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
void void
...@@ -256,7 +256,7 @@ java::lang::reflect::Array::setByte (jobject array, jint index, jbyte value) ...@@ -256,7 +256,7 @@ java::lang::reflect::Array::setByte (jobject array, jint index, jbyte value)
else if (elementType == JvPrimClass (double)) else if (elementType == JvPrimClass (double))
elements ((jdoubleArray) array) [index] = value; elements ((jdoubleArray) array) [index] = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
void void
...@@ -274,7 +274,7 @@ java::lang::reflect::Array::setShort (jobject array, jint index, jshort value) ...@@ -274,7 +274,7 @@ java::lang::reflect::Array::setShort (jobject array, jint index, jshort value)
else if (elementType == JvPrimClass (double)) else if (elementType == JvPrimClass (double))
elements ((jdoubleArray) array) [index] = value; elements ((jdoubleArray) array) [index] = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
void void
...@@ -290,7 +290,7 @@ java::lang::reflect::Array::setInt (jobject array, jint index, jint value) ...@@ -290,7 +290,7 @@ java::lang::reflect::Array::setInt (jobject array, jint index, jint value)
else if (elementType == JvPrimClass (double)) else if (elementType == JvPrimClass (double))
elements ((jdoubleArray) array) [index] = value; elements ((jdoubleArray) array) [index] = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
void void
...@@ -304,7 +304,7 @@ java::lang::reflect::Array::setLong (jobject array, jint index, jlong value) ...@@ -304,7 +304,7 @@ java::lang::reflect::Array::setLong (jobject array, jint index, jlong value)
else if (elementType == JvPrimClass (double)) else if (elementType == JvPrimClass (double))
elements ((jdoubleArray) array) [index] = value; elements ((jdoubleArray) array) [index] = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
void void
...@@ -316,7 +316,7 @@ java::lang::reflect::Array::setFloat (jobject array, jint index, jfloat value) ...@@ -316,7 +316,7 @@ java::lang::reflect::Array::setFloat (jobject array, jint index, jfloat value)
else if (elementType == JvPrimClass (double)) else if (elementType == JvPrimClass (double))
elements ((jdoubleArray) array) [index] = value; elements ((jdoubleArray) array) [index] = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
void void
...@@ -326,7 +326,7 @@ java::lang::reflect::Array::setDouble (jobject array, jint index, jdouble value) ...@@ -326,7 +326,7 @@ java::lang::reflect::Array::setDouble (jobject array, jint index, jdouble value)
if (elementType == JvPrimClass (double)) if (elementType == JvPrimClass (double))
elements ((jdoubleArray) array) [index] = value; elements ((jdoubleArray) array) [index] = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
void void
...@@ -337,7 +337,7 @@ java::lang::reflect::Array::setBoolean (jobject array, ...@@ -337,7 +337,7 @@ java::lang::reflect::Array::setBoolean (jobject array,
if (elementType == JvPrimClass (boolean)) if (elementType == JvPrimClass (boolean))
elements ((jbooleanArray) array) [index] = value; elements ((jbooleanArray) array) [index] = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
void void
...@@ -345,6 +345,6 @@ java::lang::reflect::Array::set (jobject array, jint index, ...@@ -345,6 +345,6 @@ java::lang::reflect::Array::set (jobject array, jint index,
jobject value, jclass elType) jobject value, jclass elType)
{ {
if (! _Jv_IsInstanceOf (value, elType)) if (! _Jv_IsInstanceOf (value, elType))
JvThrow (new java::lang::IllegalArgumentException ()); throw new java::lang::IllegalArgumentException;
elements ((jobjectArray) array) [index] = value; elements ((jobjectArray) array) [index] = value;
} }
// natConstructor.cc - Native code for Constructor class. // natConstructor.cc - Native code for Constructor class.
/* Copyright (C) 1999, 2000 Free Software Foundation /* Copyright (C) 1999, 2000, 2001 Free Software Foundation
This file is part of libgcj. This file is part of libgcj.
...@@ -48,7 +48,7 @@ java::lang::reflect::Constructor::newInstance (jobjectArray args) ...@@ -48,7 +48,7 @@ java::lang::reflect::Constructor::newInstance (jobjectArray args)
using namespace java::lang::reflect; using namespace java::lang::reflect;
if (Modifier::isAbstract (declaringClass->getModifiers())) if (Modifier::isAbstract (declaringClass->getModifiers()))
JvThrow (new InstantiationException); throw new InstantiationException;
jmethodID meth = _Jv_FromReflectedConstructor (this); jmethodID meth = _Jv_FromReflectedConstructor (this);
// In the constructor case the return type is the type of the // In the constructor case the return type is the type of the
......
...@@ -79,9 +79,9 @@ getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj) ...@@ -79,9 +79,9 @@ getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj)
else else
{ {
if (obj == NULL) if (obj == NULL)
_Jv_Throw (new java::lang::NullPointerException ()); throw new java::lang::NullPointerException;
if (! _Jv_IsInstanceOf (obj, field->getDeclaringClass())) if (! _Jv_IsInstanceOf (obj, field->getDeclaringClass()))
JvThrow (new java::lang::IllegalArgumentException ()); throw new java::lang::IllegalArgumentException;
return (void*) ((char*) obj + fld->getOffset ()); return (void*) ((char*) obj + fld->getOffset ());
} }
} }
...@@ -91,7 +91,7 @@ getBoolean (jclass cls, void* addr) ...@@ -91,7 +91,7 @@ getBoolean (jclass cls, void* addr)
{ {
if (cls == JvPrimClass (boolean)) if (cls == JvPrimClass (boolean))
return * (jboolean *) addr; return * (jboolean *) addr;
_Jv_Throw (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static jchar static jchar
...@@ -99,7 +99,7 @@ getChar (jclass cls, void* addr) ...@@ -99,7 +99,7 @@ getChar (jclass cls, void* addr)
{ {
if (cls == JvPrimClass (char)) if (cls == JvPrimClass (char))
return * (jchar *) addr; return * (jchar *) addr;
_Jv_Throw (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static jbyte static jbyte
...@@ -107,7 +107,7 @@ getByte (jclass cls, void* addr) ...@@ -107,7 +107,7 @@ getByte (jclass cls, void* addr)
{ {
if (cls == JvPrimClass (byte)) if (cls == JvPrimClass (byte))
return * (jbyte *) addr; return * (jbyte *) addr;
_Jv_Throw (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static jshort static jshort
...@@ -117,7 +117,7 @@ getShort (jclass cls, void* addr) ...@@ -117,7 +117,7 @@ getShort (jclass cls, void* addr)
return * (jshort *) addr; return * (jshort *) addr;
if (cls == JvPrimClass (byte)) if (cls == JvPrimClass (byte))
return * (jbyte *) addr; return * (jbyte *) addr;
_Jv_Throw (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static jint static jint
...@@ -131,7 +131,7 @@ getInt (jclass cls, void* addr) ...@@ -131,7 +131,7 @@ getInt (jclass cls, void* addr)
return * (jchar *) addr; return * (jchar *) addr;
if (cls == JvPrimClass (byte)) if (cls == JvPrimClass (byte))
return * (jbyte *) addr; return * (jbyte *) addr;
_Jv_Throw (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static jlong static jlong
...@@ -249,7 +249,7 @@ java::lang::reflect::Field::get (jclass caller, jobject obj) ...@@ -249,7 +249,7 @@ java::lang::reflect::Field::get (jclass caller, jobject obj)
else else
return java::lang::Boolean::FALSE; return java::lang::Boolean::FALSE;
} }
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static void static void
...@@ -258,7 +258,7 @@ setBoolean (jclass type, void *addr, jboolean value) ...@@ -258,7 +258,7 @@ setBoolean (jclass type, void *addr, jboolean value)
if (type == JvPrimClass (boolean)) if (type == JvPrimClass (boolean))
* (jboolean *) addr = value; * (jboolean *) addr = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static void static void
...@@ -275,7 +275,7 @@ setChar (jclass type, void *addr, jchar value) ...@@ -275,7 +275,7 @@ setChar (jclass type, void *addr, jchar value)
else if (type == JvPrimClass (double)) else if (type == JvPrimClass (double))
* (jdouble *) addr = value; * (jdouble *) addr = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static void static void
...@@ -294,7 +294,7 @@ setByte (jclass type, void *addr, jbyte value) ...@@ -294,7 +294,7 @@ setByte (jclass type, void *addr, jbyte value)
else if (type == JvPrimClass (double)) else if (type == JvPrimClass (double))
* (jdouble *) addr = value; * (jdouble *) addr = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static void static void
...@@ -311,7 +311,7 @@ setShort (jclass type, void *addr, jshort value) ...@@ -311,7 +311,7 @@ setShort (jclass type, void *addr, jshort value)
else if (type == JvPrimClass (double)) else if (type == JvPrimClass (double))
* (jdouble *) addr = value; * (jdouble *) addr = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static void static void
...@@ -326,7 +326,7 @@ setInt (jclass type, void *addr, jint value) ...@@ -326,7 +326,7 @@ setInt (jclass type, void *addr, jint value)
else if (type == JvPrimClass (double)) else if (type == JvPrimClass (double))
* (jdouble *) addr = value; * (jdouble *) addr = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static void static void
...@@ -339,7 +339,7 @@ setLong (jclass type, void *addr, jlong value) ...@@ -339,7 +339,7 @@ setLong (jclass type, void *addr, jlong value)
else if (type == JvPrimClass (double)) else if (type == JvPrimClass (double))
* (jdouble *) addr = value; * (jdouble *) addr = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static void static void
...@@ -350,7 +350,7 @@ setFloat (jclass type, void *addr, jfloat value) ...@@ -350,7 +350,7 @@ setFloat (jclass type, void *addr, jfloat value)
else if (type == JvPrimClass (double)) else if (type == JvPrimClass (double))
* (jdouble *) addr = value; * (jdouble *) addr = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
static void static void
...@@ -359,7 +359,7 @@ setDouble (jclass type, void *addr, jdouble value) ...@@ -359,7 +359,7 @@ setDouble (jclass type, void *addr, jdouble value)
if (type == JvPrimClass (double)) if (type == JvPrimClass (double))
* (jdouble *) addr = value; * (jdouble *) addr = value;
else else
JvThrow (new java::lang::IllegalArgumentException()); throw new java::lang::IllegalArgumentException;
} }
void void
...@@ -421,7 +421,7 @@ void ...@@ -421,7 +421,7 @@ void
java::lang::reflect::Field::set (jclass caller, jobject object, jobject value, jclass type) java::lang::reflect::Field::set (jclass caller, jobject object, jobject value, jclass type)
{ {
if (! _Jv_IsInstanceOf (value, type)) if (! _Jv_IsInstanceOf (value, type))
JvThrow (new java::lang::IllegalArgumentException ()); throw new java::lang::IllegalArgumentException;
void* addr = getAddr (this, caller, object); void* addr = getAddr (this, caller, object);
* (jobject*) addr = value; * (jobject*) addr = value;
} }
...@@ -160,9 +160,9 @@ java::lang::reflect::Method::invoke (jobject obj, jobjectArray args) ...@@ -160,9 +160,9 @@ java::lang::reflect::Method::invoke (jobject obj, jobjectArray args)
{ {
jclass k = obj ? obj->getClass() : NULL; jclass k = obj ? obj->getClass() : NULL;
if (! obj) if (! obj)
JvThrow (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
if (! declaringClass->isAssignableFrom(k)) if (! declaringClass->isAssignableFrom(k))
JvThrow (new java::lang::IllegalArgumentException); throw new java::lang::IllegalArgumentException;
// FIXME: access checks. // FIXME: access checks.
// Find the possibly overloaded method based on the runtime type // Find the possibly overloaded method based on the runtime type
...@@ -447,7 +447,7 @@ _Jv_CallAnyMethodA (jobject obj, ...@@ -447,7 +447,7 @@ _Jv_CallAnyMethodA (jobject obj,
// The JDK accepts this, so we do too. // The JDK accepts this, so we do too.
} }
else if (parameter_types->length != args->length) else if (parameter_types->length != args->length)
JvThrow (new java::lang::IllegalArgumentException); throw new java::lang::IllegalArgumentException;
int param_count = parameter_types->length; int param_count = parameter_types->length;
...@@ -469,7 +469,7 @@ _Jv_CallAnyMethodA (jobject obj, ...@@ -469,7 +469,7 @@ _Jv_CallAnyMethodA (jobject obj,
if (! argelts[i] if (! argelts[i]
|| ! k || ! k
|| ! can_widen (k, paramelts[i])) || ! can_widen (k, paramelts[i]))
JvThrow (new java::lang::IllegalArgumentException); throw new java::lang::IllegalArgumentException;
if (paramelts[i] == JvPrimClass (boolean)) if (paramelts[i] == JvPrimClass (boolean))
COPY (&argvals[i], COPY (&argvals[i],
...@@ -499,7 +499,7 @@ _Jv_CallAnyMethodA (jobject obj, ...@@ -499,7 +499,7 @@ _Jv_CallAnyMethodA (jobject obj,
else else
{ {
if (argelts[i] && ! paramelts[i]->isAssignableFrom (k)) if (argelts[i] && ! paramelts[i]->isAssignableFrom (k))
JvThrow (new java::lang::IllegalArgumentException); throw new java::lang::IllegalArgumentException;
COPY (&argvals[i], argelts[i], jobject); COPY (&argvals[i], argelts[i], jobject);
} }
} }
...@@ -514,7 +514,7 @@ _Jv_CallAnyMethodA (jobject obj, ...@@ -514,7 +514,7 @@ _Jv_CallAnyMethodA (jobject obj,
&ret_value); &ret_value);
if (ex) if (ex)
JvThrow (ex); throw ex;
jobject r; jobject r;
#define VAL(Wrapper, Field) (new Wrapper (ret_value.Field)) #define VAL(Wrapper, Field) (new Wrapper (ret_value.Field))
......
...@@ -37,9 +37,9 @@ java::util::zip::Deflater::deflate (jbyteArray buf, jint off, jint len) ...@@ -37,9 +37,9 @@ java::util::zip::Deflater::deflate (jbyteArray buf, jint off, jint len)
z_streamp s = (z_streamp) zstream; z_streamp s = (z_streamp) zstream;
if (! buf) if (! buf)
_Jv_Throw (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
if (off < 0 || len < 0 || off + len > buf->length) if (off < 0 || len < 0 || off + len > buf->length)
_Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
if (len == 0) if (len == 0)
return 0; return 0;
...@@ -58,7 +58,7 @@ java::util::zip::Deflater::deflate (jbyteArray buf, jint off, jint len) ...@@ -58,7 +58,7 @@ java::util::zip::Deflater::deflate (jbyteArray buf, jint off, jint len)
case Z_STREAM_ERROR: case Z_STREAM_ERROR:
case Z_BUF_ERROR: case Z_BUF_ERROR:
// FIXME? // FIXME?
_Jv_Throw (new java::lang::InternalError); throw new java::lang::InternalError;
break; break;
case Z_OK: case Z_OK:
...@@ -134,9 +134,9 @@ java::util::zip::Deflater::setDictionary (jbyteArray buf, jint off, jint len) ...@@ -134,9 +134,9 @@ java::util::zip::Deflater::setDictionary (jbyteArray buf, jint off, jint len)
z_streamp s = (z_streamp) zstream; z_streamp s = (z_streamp) zstream;
if (! buf) if (! buf)
_Jv_Throw (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
if (off < 0 || len < 0 || off + len > buf->length) if (off < 0 || len < 0 || off + len > buf->length)
_Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
// Ignore errors. // Ignore errors.
deflateSetDictionary (s, (Bytef *) (elements (buf) + off), len); deflateSetDictionary (s, (Bytef *) (elements (buf) + off), len);
...@@ -149,9 +149,9 @@ java::util::zip::Deflater::setInput (jbyteArray buf, jint off, jint len) ...@@ -149,9 +149,9 @@ java::util::zip::Deflater::setInput (jbyteArray buf, jint off, jint len)
z_streamp s = (z_streamp) zstream; z_streamp s = (z_streamp) zstream;
if (! buf) if (! buf)
_Jv_Throw (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
if (off < 0 || len < 0 || off + len > buf->length) if (off < 0 || len < 0 || off + len > buf->length)
_Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
s->next_in = (Bytef *) (elements (buf) + off); s->next_in = (Bytef *) (elements (buf) + off);
s->avail_in = len; s->avail_in = len;
...@@ -205,7 +205,7 @@ java::util::zip::Deflater::init (jint level, jboolean no_header) ...@@ -205,7 +205,7 @@ java::util::zip::Deflater::init (jint level, jboolean no_header)
jstring msg = NULL; jstring msg = NULL;
if (stream->msg != NULL) if (stream->msg != NULL)
msg = JvNewStringLatin1 (stream->msg); msg = JvNewStringLatin1 (stream->msg);
_Jv_Throw (new java::lang::InternalError (msg)); throw new java::lang::InternalError (msg);
} }
zstream = reinterpret_cast<gnu::gcj::RawData *> (stream); zstream = reinterpret_cast<gnu::gcj::RawData *> (stream);
......
...@@ -94,9 +94,9 @@ java::util::zip::Inflater::inflate (jbyteArray buf, jint off, jint len) ...@@ -94,9 +94,9 @@ java::util::zip::Inflater::inflate (jbyteArray buf, jint off, jint len)
z_streamp s = (z_streamp) zstream; z_streamp s = (z_streamp) zstream;
if (! buf) if (! buf)
_Jv_Throw (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
if (off < 0 || len < 0 || off + len > buf->length) if (off < 0 || len < 0 || off + len > buf->length)
_Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
if (len == 0) if (len == 0)
return 0; return 0;
...@@ -127,12 +127,12 @@ java::util::zip::Inflater::inflate (jbyteArray buf, jint off, jint len) ...@@ -127,12 +127,12 @@ java::util::zip::Inflater::inflate (jbyteArray buf, jint off, jint len)
break; break;
case Z_DATA_ERROR: case Z_DATA_ERROR:
_Jv_Throw (new java::util::zip::DataFormatException throw new java::util::zip::DataFormatException
(s->msg == NULL ? NULL : JvNewStringLatin1 (s->msg))); (s->msg == NULL ? NULL : JvNewStringLatin1 (s->msg));
break; break;
case Z_MEM_ERROR: case Z_MEM_ERROR:
_Jv_Throw (new java::lang::OutOfMemoryError); throw new java::lang::OutOfMemoryError;
break; break;
case Z_OK: case Z_OK:
...@@ -158,9 +158,9 @@ java::util::zip::Inflater::setDictionary (jbyteArray buf, jint off, jint len) ...@@ -158,9 +158,9 @@ java::util::zip::Inflater::setDictionary (jbyteArray buf, jint off, jint len)
z_streamp s = (z_streamp) zstream; z_streamp s = (z_streamp) zstream;
if (! buf) if (! buf)
_Jv_Throw (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
if (off < 0 || len < 0 || off + len > buf->length) if (off < 0 || len < 0 || off + len > buf->length)
_Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
// Ignore errors. // Ignore errors.
inflateSetDictionary (s, (Bytef *) (elements (buf) + off), len); inflateSetDictionary (s, (Bytef *) (elements (buf) + off), len);
...@@ -174,9 +174,9 @@ java::util::zip::Inflater::setInput (jbyteArray buf, jint off, jint len) ...@@ -174,9 +174,9 @@ java::util::zip::Inflater::setInput (jbyteArray buf, jint off, jint len)
z_streamp s = (z_streamp) zstream; z_streamp s = (z_streamp) zstream;
if (! buf) if (! buf)
_Jv_Throw (new java::lang::NullPointerException); throw new java::lang::NullPointerException;
if (off < 0 || len < 0 || off + len > buf->length) if (off < 0 || len < 0 || off + len > buf->length)
_Jv_Throw (new java::lang::ArrayIndexOutOfBoundsException); throw new java::lang::ArrayIndexOutOfBoundsException;
s->next_in = (Bytef *) (elements (buf) + off); s->next_in = (Bytef *) (elements (buf) + off);
s->avail_in = len; s->avail_in = len;
...@@ -202,7 +202,7 @@ java::util::zip::Inflater::init (jboolean no_header) ...@@ -202,7 +202,7 @@ java::util::zip::Inflater::init (jboolean no_header)
jstring msg = NULL; jstring msg = NULL;
if (stream->msg != NULL) if (stream->msg != NULL)
msg = JvNewStringLatin1 (stream->msg); msg = JvNewStringLatin1 (stream->msg);
_Jv_Throw (new java::lang::InternalError (msg)); throw new java::lang::InternalError (msg);
} }
zstream = reinterpret_cast<gnu::gcj::RawData *> (stream); zstream = reinterpret_cast<gnu::gcj::RawData *> (stream);
......
...@@ -1746,7 +1746,7 @@ _Jv_LookupJNIMethod (jclass klass, _Jv_Utf8Const *name, ...@@ -1746,7 +1746,7 @@ _Jv_LookupJNIMethod (jclass klass, _Jv_Utf8Const *name,
if (function == NULL) if (function == NULL)
{ {
jstring str = JvNewStringUTF (name->data); jstring str = JvNewStringUTF (name->data);
JvThrow (new java::lang::AbstractMethodError (str)); throw new java::lang::AbstractMethodError (str);
} }
} }
......
...@@ -398,7 +398,7 @@ _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, ...@@ -398,7 +398,7 @@ _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data,
if (r) if (r)
{ {
const char* msg = "Cannot create additional threads"; const char* msg = "Cannot create additional threads";
JvThrow (new java::lang::OutOfMemoryError (JvNewStringUTF (msg))); throw new java::lang::OutOfMemoryError (JvNewStringUTF (msg));
} }
} }
......
...@@ -100,17 +100,16 @@ void (*_Jv_JVMPI_Notify_THREAD_END) (JVMPI_Event *event); ...@@ -100,17 +100,16 @@ void (*_Jv_JVMPI_Notify_THREAD_END) (JVMPI_Event *event);
#endif #endif
extern "C" void _Jv_ThrowSignal (void *) __attribute ((noreturn)); extern "C" void _Jv_ThrowSignal (jthrowable) __attribute ((noreturn));
// Just like _Jv_Throw, but fill in the stack trace first. Although // Just like _Jv_Throw, but fill in the stack trace first. Although
// this is declared extern in order that its name not be mangled, it // this is declared extern in order that its name not be mangled, it
// is not intended to be used outside this file. // is not intended to be used outside this file.
void void
_Jv_ThrowSignal (void *e) _Jv_ThrowSignal (jthrowable throwable)
{ {
java::lang::Throwable *throwable = (java::lang::Throwable *)e;
throwable->fillInStackTrace (); throwable->fillInStackTrace ();
_Jv_Throw (throwable); throw throwable;
} }
#ifdef HANDLE_SEGV #ifdef HANDLE_SEGV
...@@ -251,7 +250,7 @@ _Jv_makeUtf8Const (char* s, int len) ...@@ -251,7 +250,7 @@ _Jv_makeUtf8Const (char* s, int len)
len = strlen (s); len = strlen (s);
Utf8Const* m = (Utf8Const*) _Jv_AllocBytes (sizeof(Utf8Const) + len + 1); Utf8Const* m = (Utf8Const*) _Jv_AllocBytes (sizeof(Utf8Const) + len + 1);
if (! m) if (! m)
JvThrow (no_memory); throw no_memory;
memcpy (m->data, s, len); memcpy (m->data, s, len);
m->data[len] = 0; m->data[len] = 0;
m->length = len; m->length = len;
...@@ -316,14 +315,14 @@ _Jv_GCWatch (jobject obj) ...@@ -316,14 +315,14 @@ _Jv_GCWatch (jobject obj)
void void
_Jv_ThrowBadArrayIndex(jint bad_index) _Jv_ThrowBadArrayIndex(jint bad_index)
{ {
JvThrow (new java::lang::ArrayIndexOutOfBoundsException throw new java::lang::ArrayIndexOutOfBoundsException
(java::lang::String::valueOf(bad_index))); (java::lang::String::valueOf (bad_index));
} }
void void
_Jv_ThrowNullPointerException () _Jv_ThrowNullPointerException ()
{ {
throw new java::lang::NullPointerException (); throw new java::lang::NullPointerException;
} }
// Allocate some unscanned memory and throw an exception if no memory. // Allocate some unscanned memory and throw an exception if no memory.
...@@ -332,7 +331,7 @@ _Jv_AllocBytesChecked (jsize size) ...@@ -332,7 +331,7 @@ _Jv_AllocBytesChecked (jsize size)
{ {
void *r = _Jv_AllocBytes (size); void *r = _Jv_AllocBytes (size);
if (! r) if (! r)
_Jv_Throw (no_memory); throw no_memory;
return r; return r;
} }
...@@ -346,7 +345,7 @@ _Jv_AllocObject (jclass klass, jint size) ...@@ -346,7 +345,7 @@ _Jv_AllocObject (jclass klass, jint size)
jobject obj = (jobject) _Jv_AllocObj (size, klass); jobject obj = (jobject) _Jv_AllocObj (size, klass);
if (__builtin_expect (! obj, false)) if (__builtin_expect (! obj, false))
JvThrow (no_memory); throw no_memory;
// If this class has inherited finalize from Object, then don't // If this class has inherited finalize from Object, then don't
// bother registering a finalizer. We know that finalize() is the // bother registering a finalizer. We know that finalize() is the
...@@ -390,7 +389,7 @@ jobjectArray ...@@ -390,7 +389,7 @@ jobjectArray
_Jv_NewObjectArray (jsize count, jclass elementClass, jobject init) _Jv_NewObjectArray (jsize count, jclass elementClass, jobject init)
{ {
if (__builtin_expect (count < 0, false)) if (__builtin_expect (count < 0, false))
JvThrow (new java::lang::NegativeArraySizeException); throw new java::lang::NegativeArraySizeException;
JvAssert (! elementClass->isPrimitive ()); JvAssert (! elementClass->isPrimitive ());
...@@ -404,7 +403,7 @@ _Jv_NewObjectArray (jsize count, jclass elementClass, jobject init) ...@@ -404,7 +403,7 @@ _Jv_NewObjectArray (jsize count, jclass elementClass, jobject init)
obj = (jobjectArray) _Jv_AllocArray (size, klass); obj = (jobjectArray) _Jv_AllocArray (size, klass);
if (__builtin_expect (! obj, false)) if (__builtin_expect (! obj, false))
JvThrow (no_memory); throw no_memory;
// Cast away const. // Cast away const.
jsize *lp = const_cast<jsize *> (&obj->length); jsize *lp = const_cast<jsize *> (&obj->length);
*lp = count; *lp = count;
...@@ -426,7 +425,7 @@ _Jv_NewPrimArray (jclass eltype, jint count) ...@@ -426,7 +425,7 @@ _Jv_NewPrimArray (jclass eltype, jint count)
{ {
int elsize = eltype->size(); int elsize = eltype->size();
if (__builtin_expect (count < 0, false)) if (__builtin_expect (count < 0, false))
JvThrow (new java::lang::NegativeArraySizeException ()); throw new java::lang::NegativeArraySizeException;
JvAssert (eltype->isPrimitive ()); JvAssert (eltype->isPrimitive ());
jobject dummy = NULL; jobject dummy = NULL;
...@@ -435,13 +434,13 @@ _Jv_NewPrimArray (jclass eltype, jint count) ...@@ -435,13 +434,13 @@ _Jv_NewPrimArray (jclass eltype, jint count)
// Check for overflow. // Check for overflow.
if (__builtin_expect ((size_t) count > if (__builtin_expect ((size_t) count >
(SIZE_T_MAX - size) / elsize, false)) (SIZE_T_MAX - size) / elsize, false))
JvThrow (no_memory); throw no_memory;
jclass klass = _Jv_GetArrayClass (eltype, 0); jclass klass = _Jv_GetArrayClass (eltype, 0);
__JArray *arr = (__JArray*) _Jv_AllocObj (size + elsize * count, klass); __JArray *arr = (__JArray*) _Jv_AllocObj (size + elsize * count, klass);
if (__builtin_expect (! arr, false)) if (__builtin_expect (! arr, false))
JvThrow (no_memory); throw no_memory;
// Cast away const. // Cast away const.
jsize *lp = const_cast<jsize *> (&arr->length); jsize *lp = const_cast<jsize *> (&arr->length);
*lp = count; *lp = count;
...@@ -953,7 +952,7 @@ _Jv_Malloc (jsize size) ...@@ -953,7 +952,7 @@ _Jv_Malloc (jsize size)
size = 1; size = 1;
void *ptr = malloc ((size_t) size); void *ptr = malloc ((size_t) size);
if (__builtin_expect (ptr == NULL, false)) if (__builtin_expect (ptr == NULL, false))
JvThrow (no_memory); throw no_memory;
return ptr; return ptr;
} }
...@@ -964,7 +963,7 @@ _Jv_Realloc (void *ptr, jsize size) ...@@ -964,7 +963,7 @@ _Jv_Realloc (void *ptr, jsize size)
size = 1; size = 1;
ptr = realloc (ptr, (size_t) size); ptr = realloc (ptr, (size_t) size);
if (__builtin_expect (ptr == NULL, false)) if (__builtin_expect (ptr == NULL, false))
JvThrow (no_memory); throw no_memory;
return ptr; return ptr;
} }
......
...@@ -70,7 +70,7 @@ static _Jv_Utf8Const *init_name = _Jv_makeUtf8Const ("<init>", 6); ...@@ -70,7 +70,7 @@ static _Jv_Utf8Const *init_name = _Jv_makeUtf8Const ("<init>", 6);
static void throw_incompatible_class_change_error (jstring msg) static void throw_incompatible_class_change_error (jstring msg)
{ {
JvThrow (new java::lang::IncompatibleClassChangeError (msg)); throw new java::lang::IncompatibleClassChangeError (msg);
} }
_Jv_word _Jv_word
...@@ -98,7 +98,7 @@ _Jv_ResolvePoolEntry (jclass klass, int index) ...@@ -98,7 +98,7 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
if (! found) if (! found)
{ {
jstring str = _Jv_NewStringUTF (name->data); jstring str = _Jv_NewStringUTF (name->data);
JvThrow (new java::lang::ClassNotFoundException (str)); throw new java::lang::ClassNotFoundException (str);
} }
if ((found->accflags & Modifier::PUBLIC) == Modifier::PUBLIC if ((found->accflags & Modifier::PUBLIC) == Modifier::PUBLIC
...@@ -110,7 +110,7 @@ _Jv_ResolvePoolEntry (jclass klass, int index) ...@@ -110,7 +110,7 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
} }
else else
{ {
JvThrow (new java::lang::IllegalAccessError (found->getName())); throw new java::lang::IllegalAccessError (found->getName());
} }
} }
break; break;
...@@ -185,17 +185,16 @@ _Jv_ResolvePoolEntry (jclass klass, int index) ...@@ -185,17 +185,16 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
_Jv_ResolveField (field, cls->loader); _Jv_ResolveField (field, cls->loader);
if (field_type != 0 && field->type != field_type) if (field_type != 0 && field->type != field_type)
JvThrow throw new java::lang::LinkageError
(new java::lang::LinkageError (JvNewStringLatin1
(JvNewStringLatin1 ("field type mismatch with different loaders"));
("field type mismatch with different loaders")));
the_field = field; the_field = field;
goto end_of_field_search; goto end_of_field_search;
} }
else else
{ {
JvThrow (new java::lang::IllegalAccessError); throw new java::lang::IllegalAccessError;
} }
} }
} }
...@@ -319,7 +318,7 @@ _Jv_ResolvePoolEntry (jclass klass, int index) ...@@ -319,7 +318,7 @@ _Jv_ResolvePoolEntry (jclass klass, int index)
msg = msg->concat (JvNewStringLatin1(".")); msg = msg->concat (JvNewStringLatin1("."));
msg = msg->concat (_Jv_NewStringUTF (method_name->data)); msg = msg->concat (_Jv_NewStringUTF (method_name->data));
msg = msg->concat (JvNewStringLatin1(" was not found.")); msg = msg->concat (JvNewStringLatin1(" was not found."));
JvThrow(new java::lang::NoSuchMethodError (msg)); throw new java::lang::NoSuchMethodError (msg);
} }
pool->data[index].rmethod = pool->data[index].rmethod =
...@@ -366,7 +365,7 @@ _Jv_SearchMethodInClass (jclass cls, jclass klass, ...@@ -366,7 +365,7 @@ _Jv_SearchMethodInClass (jclass cls, jclass klass,
} }
else else
{ {
JvThrow (new java::lang::IllegalAccessError); throw new java::lang::IllegalAccessError;
} }
} }
return 0; return 0;
...@@ -486,7 +485,7 @@ _Jv_DetermineVTableIndex (jclass klass, ...@@ -486,7 +485,7 @@ _Jv_DetermineVTableIndex (jclass klass,
static void static void
_Jv_abstractMethodError () _Jv_abstractMethodError ()
{ {
JvThrow (new java::lang::AbstractMethodError); throw new java::lang::AbstractMethodError;
} }
void void
...@@ -684,8 +683,7 @@ _Jv_PrepareClass(jclass klass) ...@@ -684,8 +683,7 @@ _Jv_PrepareClass(jclass klass)
{ {
clz->state = JV_STATE_ERROR; clz->state = JV_STATE_ERROR;
clz->notifyAll (); clz->notifyAll ();
JvThrow (new java::lang::IncompatibleClassChangeError throw new java::lang::IncompatibleClassChangeError (clz->getName ());
(clz->getName ()));
} }
/* FIXME: At this point, if (loader != super_class->loader), we /* FIXME: At this point, if (loader != super_class->loader), we
...@@ -1211,10 +1209,9 @@ _Jv_BuildResolvedMethod (_Jv_Method* method, ...@@ -1211,10 +1209,9 @@ _Jv_BuildResolvedMethod (_Jv_Method* method,
static void static void
throw_class_format_error (jstring msg) throw_class_format_error (jstring msg)
{ {
if (msg == 0) throw (msg
JvThrow (new java::lang::ClassFormatError); ? new java::lang::ClassFormatError (msg)
else : new java::lang::ClassFormatError);
JvThrow (new java::lang::ClassFormatError (msg));
} }
static void static void
...@@ -1226,8 +1223,7 @@ throw_class_format_error (char *msg) ...@@ -1226,8 +1223,7 @@ throw_class_format_error (char *msg)
static void static void
throw_internal_error (char *msg) throw_internal_error (char *msg)
{ {
JvThrow throw new java::lang::InternalError (JvNewStringLatin1 (msg));
(new java::lang::InternalError (JvNewStringLatin1 (msg)));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment