[kaffe] Re: [PATCH] use InternalError for memory errors
Casey Marshall
usenet@metastatic.org
Fri Mar 5 17:03:20 PST 2004
--=-=-=
>>>>> "Casey" == Casey Marshall <rsdio@metastatic.org> writes:
Casey> Hi, I'd like to suggest that instead of throwing a
Casey> NullPointerException for bad memory accesses (SIGBUS and
Casey> SIGSEGV) an InternalError is thrown instead. It's more
Casey> descriptive, and less confusing.
Casey> Cheers,
Casey> -- Casey Marshall || rsdio@metastatic.org
(I'm an idiot and need to send a message three times to get it right)
--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment; filename=internalerr.patch
Index: kaffe/kaffevm/baseClasses.c
===================================================================
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/baseClasses.c,v
retrieving revision 1.45
diff -u -r1.45 baseClasses.c
--- kaffe/kaffevm/baseClasses.c 7 Aug 2003 21:05:27 -0000 1.45
+++ kaffe/kaffevm/baseClasses.c 5 Mar 2004 21:10:07 -0000
@@ -83,6 +83,7 @@
Hjava_lang_Class* javaLangStackOverflowError;
/* Let's not load this if we can't open Klasses.jar */
Hjava_lang_Class* javaIoIOException;
+Hjava_lang_Class* javaLangInternalError;
#define SYSTEMCLASS "java/lang/System"
#define SERIALCLASS "java/io/Serializable"
@@ -291,6 +292,7 @@
loadStaticClass(&javaLangNoClassDefFoundError, "java/lang/NoClassDefFoundError");
loadStaticClass(&javaLangStackOverflowError, "java/lang/StackOverflowError");
loadStaticClass(&javaIoIOException, "java/io/IOException");
+ loadStaticClass(&javaLangInternalError, "java/lang/InternalError");
DBG(INIT, dprintf("initBaseClasses() done\n"); )
Index: kaffe/kaffevm/baseClasses.h
===================================================================
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/baseClasses.h,v
retrieving revision 1.16
diff -u -r1.16 baseClasses.h
--- kaffe/kaffevm/baseClasses.h 5 Aug 2003 15:06:37 -0000 1.16
+++ kaffe/kaffevm/baseClasses.h 5 Mar 2004 21:10:07 -0000
@@ -56,5 +56,6 @@
extern struct Hjava_lang_Class* javaLangClassNotFoundException;
extern struct Hjava_lang_Class* javaLangNoClassDefFoundError;
extern struct Hjava_lang_Class* javaLangStackOverflowError;
+extern struct Hjava_lang_Class* javaLangInternalError;
#endif
Index: kaffe/kaffevm/exception.c
===================================================================
RCS file: /cvs/kaffe/kaffe/kaffe/kaffevm/exception.c,v
retrieving revision 1.77
diff -u -r1.77 exception.c
--- kaffe/kaffevm/exception.c 1 Feb 2004 22:14:52 -0000 1.77
+++ kaffe/kaffevm/exception.c 5 Mar 2004 21:10:07 -0000
@@ -471,7 +471,7 @@
Hjava_lang_VMThrowable* vmstate;
Hjava_lang_Object* backtrace;
- npe = (Hjava_lang_Throwable*)newObject(javaLangNullPointerException);
+ npe = (Hjava_lang_Throwable*)newObject(javaLangInternalError);
vmstate = (Hjava_lang_VMThrowable*)newObject(javaLangVMThrowable);
backtrace = buildStackTrace(frame);
unhand(vmstate)->backtrace = backtrace;
--=-=-=--
More information about the kaffe
mailing list