Changes:
- $Id: exceptions.c 2490 2005-05-20 23:05:49Z twisti $
+ $Id: exceptions.c 2671 2005-06-13 14:29:42Z twisti $
*/
{
/* java/lang/Throwable */
- if (!load_class_bootstrap(utf_java_lang_Throwable,
- &class_java_lang_Throwable) ||
+ if (!(class_java_lang_Throwable =
+ load_class_bootstrap(utf_java_lang_Throwable)) ||
!link_class(class_java_lang_Throwable))
return false;
/* java/lang/VMThrowable */
- if (!load_class_bootstrap(utf_java_lang_VMThrowable,
- &class_java_lang_VMThrowable) ||
+ if (!(class_java_lang_VMThrowable =
+ load_class_bootstrap(utf_java_lang_VMThrowable)) ||
!link_class(class_java_lang_VMThrowable))
return false;
/* java/lang/Error */
- if (!load_class_bootstrap(utf_java_lang_Error, &class_java_lang_Error) ||
+ if (!(class_java_lang_Error = load_class_bootstrap(utf_java_lang_Error)) ||
!link_class(class_java_lang_Error))
return false;
/* java/lang/Exception */
- if (!load_class_bootstrap(utf_java_lang_Exception,
- &class_java_lang_Exception) ||
+ if (!(class_java_lang_Exception =
+ load_class_bootstrap(utf_java_lang_Exception)) ||
!link_class(class_java_lang_Exception))
return false;
/* java/lang/NoClassDefFoundError */
- if (!load_class_bootstrap(utf_java_lang_NoClassDefFoundError,
- &class_java_lang_NoClassDefFoundError) ||
+ if (!(class_java_lang_NoClassDefFoundError =
+ load_class_bootstrap(utf_java_lang_NoClassDefFoundError)) ||
!link_class(class_java_lang_NoClassDefFoundError))
return false;
/* java/lang/OutOfMemoryError */
- if (!load_class_bootstrap(utf_java_lang_OutOfMemoryError,
- &class_java_lang_OutOfMemoryError) ||
+ if (!(class_java_lang_OutOfMemoryError =
+ load_class_bootstrap(utf_java_lang_OutOfMemoryError)) ||
!link_class(class_java_lang_OutOfMemoryError))
return false;
/* java/lang/ClassNotFoundException */
- if (!load_class_bootstrap(utf_java_lang_ClassNotFoundException,
- &class_java_lang_ClassNotFoundException) ||
+ if (!(class_java_lang_ClassNotFoundException =
+ load_class_bootstrap(utf_java_lang_ClassNotFoundException)) ||
!link_class(class_java_lang_ClassNotFoundException))
return false;
}
+/* new_exception ***************************************************************
+
+ Creates an exception object with the given name and initalizes it.
+
+*******************************************************************************/
+
java_objectheader *new_exception(const char *classname)
{
- classinfo *c;
-
- if (!load_class_bootstrap(utf_new_char(classname), &c))
+ java_objectheader *o;
+ classinfo *c;
+
+ if (!(c = load_class_bootstrap(utf_new_char(classname))))
return *exceptionptr;
- return native_new_and_init(c);
+ o = native_new_and_init(c);
+
+ if (!o)
+ return *exceptionptr;
+
+ return o;
}
-java_objectheader *new_exception_message(const char *classname, const char *message)
+
+/* new_exception_message *******************************************************
+
+ Creates an exception object with the given name and initalizes it
+ with the given char message.
+
+*******************************************************************************/
+
+java_objectheader *new_exception_message(const char *classname,
+ const char *message)
{
- classinfo *c;
+ java_objectheader *o;
+ classinfo *c;
- if (!load_class_bootstrap(utf_new_char(classname), &c))
+ if (!(c = load_class_bootstrap(utf_new_char(classname))))
return *exceptionptr;
+ o = native_new_and_init_string(c, javastring_new_char(message));
- return native_new_and_init_string(c, javastring_new_char(message));
+ if (!o)
+ return *exceptionptr;
+
+ return o;
}
-java_objectheader *new_exception_throwable(const char *classname, java_lang_Throwable *throwable)
+/* new_exception_throwable *****************************************************
+
+ Creates an exception object with the given name and initalizes it
+ with the given java/lang/Throwable exception.
+
+*******************************************************************************/
+
+java_objectheader *new_exception_throwable(const char *classname,
+ java_lang_Throwable *throwable)
{
- classinfo *c;
+ java_objectheader *o;
+ classinfo *c;
- if (!load_class_bootstrap(utf_new_char(classname), &c))
+ if (!(c = load_class_bootstrap(utf_new_char(classname))))
return *exceptionptr;
+ o = native_new_and_init_throwable(c, throwable);
+
+ if (!o)
+ return *exceptionptr;
- return native_new_and_init_throwable(c, throwable);
+ return o;
}
+/* new_exception_utfmessage ****************************************************
+
+ Creates an exception object with the given name and initalizes it
+ with the given utf message.
+
+*******************************************************************************/
+
java_objectheader *new_exception_utfmessage(const char *classname, utf *message)
{
- classinfo *c;
+ java_objectheader *o;
+ classinfo *c;
- if (!load_class_bootstrap(utf_new_char(classname), &c))
+ if (!(c = load_class_bootstrap(utf_new_char(classname))))
return *exceptionptr;
+ o = native_new_and_init_string(c, javastring_new(message));
- return native_new_and_init_string(c, javastring_new(message));
+ if (!o)
+ return *exceptionptr;
+
+ return o;
}
-java_objectheader *new_exception_javastring(const char *classname, java_lang_String *message)
+/* new_exception_javastring ****************************************************
+
+ Creates an exception object with the given name and initalizes it
+ with the given java/lang/String message.
+
+*******************************************************************************/
+
+java_objectheader *new_exception_javastring(const char *classname,
+ java_lang_String *message)
{
- classinfo *c;
+ java_objectheader *o;
+ classinfo *c;
- if (!load_class_bootstrap(utf_new_char(classname), &c))
+ if (!(c = load_class_bootstrap(utf_new_char(classname))))
return *exceptionptr;
+ o = native_new_and_init_string(c, message);
+
+ if (!o)
+ return *exceptionptr;
- return native_new_and_init_string(c, message);
+ return o;
}
+/* new_exception_int ***********************************************************
+
+ Creates an exception object with the given name and initalizes it
+ with the given int value.
+
+*******************************************************************************/
+
java_objectheader *new_exception_int(const char *classname, s4 i)
{
- classinfo *c;
+ java_objectheader *o;
+ classinfo *c;
- if (!load_class_bootstrap(utf_new_char(classname), &c))
+ if (!(c = load_class_bootstrap(utf_new_char(classname))))
return *exceptionptr;
- return native_new_and_init_int(c, i);
+ o = native_new_and_init_int(c, i);
+
+ if (!o)
+ return *exceptionptr;
+
+ return o;
}
/* calculate message length */
+ msglen = 0;
+
if (c)
- msglen = utf_strlen(c->name) + strlen(" (");
+ msglen += utf_strlen(c->name) + strlen(" (");
va_start(ap, message);
msglen += get_variable_message_length(message, ap);