diff options
Diffstat (limited to 'resource/japhar-0.09.patch.1')
-rw-r--r-- | resource/japhar-0.09.patch.1 | 305 |
1 files changed, 0 insertions, 305 deletions
diff --git a/resource/japhar-0.09.patch.1 b/resource/japhar-0.09.patch.1 deleted file mode 100644 index 9b2c180a9..000000000 --- a/resource/japhar-0.09.patch.1 +++ /dev/null @@ -1,305 +0,0 @@ -diff -uNr japhar-0.09.orig/include/runtime.h japhar-0.09/include/runtime.h ---- japhar-0.09.orig/include/runtime.h Sat Sep 16 00:49:58 2000 -+++ japhar-0.09/include/runtime.h Wed Dec 6 00:09:15 2000 -@@ -425,7 +425,9 @@ - HVM_ExceptionCleanup(HungryEnv *henv, japhar_object* exception); - - PR_EXTERN( void ) --HVM_ExceptionPrintBacktrace(HungryEnv *henv, japhar_object* throwable_ref); -+HVM_ExceptionPrintStackTrace(HungryEnv *henv, -+ japhar_object* throwable_ref, -+ japhar_object* stream); - - PR_EXTERN( void ) - HVM_ExceptionFillInBacktraceFromStack(HungryEnv *henv, -diff -uNr japhar-0.09.orig/lib/libnative/java.lang/throwable.c japhar-0.09/lib/libnative/java.lang/throwable.c ---- japhar-0.09.orig/lib/libnative/java.lang/throwable.c Sun Oct 31 19:43:00 1999 -+++ japhar-0.09/lib/libnative/java.lang/throwable.c Wed Dec 6 00:08:50 2000 -@@ -35,7 +35,7 @@ - jobject printwriter_stream) - { - HungryEnv *henv = HVM_ThreadGetEnv(); -- HVM_ExceptionPrintBacktrace(henv, throwable); -+ HVM_ExceptionPrintStackTrace(henv, throwable, printwriter_stream); - } - - JNIEXPORT jobject JNICALL -diff -uNr japhar-0.09.orig/lib/libruntime/exceptions.c japhar-0.09/lib/libruntime/exceptions.c ---- japhar-0.09.orig/lib/libruntime/exceptions.c Thu Jan 6 20:33:47 2000 -+++ japhar-0.09/lib/libruntime/exceptions.c Wed Dec 6 09:16:37 2000 -@@ -46,7 +46,7 @@ - int i = 0; - PR_ASSERT(NULL != henv); - PR_ASSERT(NULL != method); -- -+ - if (method->line_numbers) - { - for (i = 0; i < method->num_line_number_blocks; i++) -@@ -61,10 +61,12 @@ - } - - PR_IMPLEMENT(void) --HVM_ExceptionPrintBacktrace(HungryEnv *henv, japhar_object* throwable_ref) -+HVM_ExceptionPrintStackTrace(HungryEnv *henv, -+ japhar_object* throwable_ref, -+ japhar_object* stream_ref) - { -- ClazzFile *throwable_class; -- MethodStruct *getMessage; -+ ClazzFile *throwable_class, *stream_class; -+ MethodStruct *getMessage, *println = NULL; - japhar_object* msg = NULL; - ClazzFile *exception_cf = throwable_ref->clazz; - char *exceptionname = getClassName(env, exception_cf); -@@ -72,63 +74,83 @@ - ExceptionInfo *exc_info = HVM_ObjectGetNativeState(throwable_ref); - BackTraceLevel *level; - InterpValue msg_value; -+ char *msg_to_print; -+ japhar_object *msg_obj; - -- throwable_class = HVM_ClassFind(henv, java_lang_Throwable); -- -- getMessage = HVM_MethodFind(henv, throwable_class, -- "getMessage", -- "()Ljava/lang/String;"); -- -- /* -- * Cache exception and make sure the runtime don't think the call to -- * getMessage failed -- */ -- exception_cache = henv->_exception; -- henv->_exception = NULL; -- -- msg_value = HVM_MethodCallA(henv, getMessage, throwable_ref, NULL); -- msg = msg_value.l; -- -- /* Don't know what to do if the call fails. Die a horrible death? */ -- PR_ASSERT(NULL == henv->_exception); -- henv->_exception = exception_cache; -- -- if (msg) -+ if (stream_ref != NULL) - { -- const char *msg_bytes = HVM_StringToCString(henv, msg); -+ ClazzFile *stream_clazz = HVM_ClassFind(henv, "java/io/PrintWriter"); -+ PRBool pwriter = HVM_ObjectIsInstanceOf(henv, stream_ref, stream_clazz); -+ if (pwriter) -+ stream_class = HVM_ClassFind(henv, "java/io/PrintWriter"); -+ else -+ stream_class = HVM_ClassFind(henv, "java/io/PrintStream"); - -- fprintf (stderr, "%s (%s)\n", exceptionname, msg_bytes); -+ if (stream_class == NULL) -+ { -+ if (pwriter) -+ abort_with_message("ExceptionPrintStackTrace could not " -+ "find java/io/PrintWriter"); -+ else -+ abort_with_message("ExceptionPrintStackTrace could not " -+ "find java/io/PrintStream"); -+ } -+ -+ println = HVM_MethodFind(henv, stream_class, "println", -+ "(Ljava/lang/String;)V"); -+ if (println == NULL) -+ abort_with_message("ExceptionPrintStacktrace could not " -+ "find method println"); - } -- else -- fprintf (stderr, "%s\n", exceptionname); - - level = exc_info->head; - while (level) - { - int line_number = method_pc_to_line_number(henv, level->method, - level->pc); -- -+ -+ PR_ASSERT(NULL != level->method); - if (level->method->access_flags & ACC_NATIVE) -- fprintf (stderr, " in %s.%s(%s%snative method)\n", -- level->classname, -- level->method->name, -- level->filename ? level->filename : "", -- level->filename ? ", " : ""); -+ { -+ msg_to_print = PR_smprintf(" in %s.%s(%s%snative method)", -+ level->classname, -+ level->method->name, -+ level->filename ? level->filename : "", -+ level->filename ? ", " : ""); -+ } - else if (line_number == -1) -- fprintf (stderr, " in %s.%s(%s%spc = %d)\n", -- level->classname, -- level->method->name, -- level->filename ? level->filename : "", -- level->filename ? ", " : "", -- level->pc); -+ { -+ msg_to_print = PR_smprintf(" in %s.%s(%s%spc = %d)", -+ level->classname, -+ level->method->name, -+ level->filename ? level->filename : "", -+ level->filename ? ", " : "", -+ level->pc); -+ } - else -- fprintf (stderr, " at %s.%s(%s%s%d, pc = %d)\n", -- level->classname, -- level->method->name, -- level->filename ? level->filename : "", -- level->filename ? ":" : "line ", -- line_number, -- level->pc); -+ { -+ msg_to_print = PR_smprintf(" at %s.%s(%s%s%d, pc = %d)", -+ level->classname, -+ level->method->name, -+ level->filename ? level->filename : "", -+ level->filename ? ":" : "line ", -+ line_number, -+ level->pc); -+ } -+ -+ msg_obj = HVM_StringFromCString(henv, msg_to_print); -+ if (msg_obj == NULL) -+ abort_with_message("ExceptionPrintStackTrace unable to " -+ "allocate message"); -+ -+ if (println != NULL) -+ { -+ HVM_MethodCall(henv, println, stream_ref, msg_obj); -+ } -+ else -+ fprintf (stderr, "%s\n", msg_to_print); -+ -+ PR_smprintf_free(msg_to_print); - - level = level->next; - } -@@ -141,7 +163,7 @@ - /* XXX remove the gc root */ - henv->_exception = NULL; - -- HVM_ExceptionPrintBacktrace(henv, throwable_ref); -+ HVM_ExceptionPrintStackTrace(henv, throwable_ref, (japhar_object*)NULL); - } - - PR_IMPLEMENT(void) -@@ -173,14 +195,14 @@ - { - ExceptionInfo *exc_info = HVM_ObjectGetNativeState(throwable_ref); - BackTraceLevel *new_level = (BackTraceLevel*)PR_MALLOC(sizeof(BackTraceLevel)); -- -+ - new_level->classname = PL_strdup(getClassName(henv, throw_frame->method->clazz)); - new_level->filename = throw_frame->method->clazz->source_filename; - new_level->method = throw_frame->method; - new_level->pc = throw_frame->pc; - new_level->next = NULL; - new_level->prev = NULL; -- -+ - /* link the new level into the list of levels */ - if (exc_info->tail) - { -@@ -284,7 +306,7 @@ - - throw_frame = f; - -- PR_LOG(exceptionLm, PR_LOG_DEBUG, -+ PR_LOG(exceptionLm, PR_LOG_DEBUG, - ("Exception %s thrown from %s.%s - at pc %d\n", - getClassName(ENV(throw_frame), throwable_cf), - getClassName(ENV(throw_frame), throw_frame->method->clazz), -@@ -303,7 +325,7 @@ - /* if we hit a native frame, we just return. - the interpreter loop will return to it's caller - if the exception hasn't been handled here. */ -- -+ - return; - } - else -@@ -328,7 +350,7 @@ - catch_class = ExceptionBlock_getHandlerClazz(henv, - throw_frame->method->clazz, - exc_block); -- -+ - if (!HVM_ObjectIsInstanceOf(henv, throwable_ref, catch_class)) - continue; - -@@ -337,7 +359,7 @@ - the exception was thrown from. */ - - throw_frame->pc = exc_block->handler_pc; -- -+ - henv->op_stack->stack_top = throw_frame->opstack_top; - - op_stack_push_object(henv->op_stack, throwable_ref); -@@ -345,17 +367,17 @@ - /* XXX remove the gc root */ - henv->_exception = NULL; - -- PR_LOG(exceptionLm, PR_LOG_DEBUG, -+ PR_LOG(exceptionLm, PR_LOG_DEBUG, - ("Exception %s caught by %s.%s - at pc %d\n", - getClassName(henv, catch_class), - getClassName(henv, throw_frame->method->clazz), - throw_frame->method->name, - throw_frame->pc)); -- -+ - return; - } - -- /* if we didn't find a match, pop the stack -+ /* if we didn't find a match, pop the stack - frame and do it again. */ - new_throw_frame = throw_frame->parent; - pop_frame(henv); -@@ -381,7 +403,7 @@ - char *msg = NULL; - - exception_cls = HVM_ClassFind(henv, exception_name); -- -+ - if (!exception_cls) - abort_with_message("Unable to raise exception."); - -@@ -417,16 +439,13 @@ - constructor = HVM_MethodFind(henv, cf, - "<init>", "(Ljava/lang/String;)V"); - -- HVM_MethodCall(henv, constructor, -- new_exception, string); -+ HVM_MethodCall(henv, constructor, new_exception, string); - } - else - { - constructor = HVM_MethodFind(henv, cf, "<init>", "()V"); - -- HVM_MethodCallA(henv, constructor, -- new_exception, NULL); -- -+ HVM_MethodCallA(henv, constructor, new_exception, NULL); - } - - return new_exception; -diff -uNr japhar-0.09.orig/lib/libruntime/init.c japhar-0.09/lib/libruntime/init.c ---- japhar-0.09.orig/lib/libruntime/init.c Sat Sep 16 00:51:08 2000 -+++ japhar-0.09/lib/libruntime/init.c Wed Dec 6 09:25:34 2000 -@@ -454,7 +454,7 @@ - - if (new_env->_exception) - { -- HVM_ExceptionPrintBacktrace(new_env, new_env->_exception); -+ HVM_ExceptionPrintStackTrace(new_env, new_env->_exception, (japhar_object*)NULL); - return PR_FALSE; - } - |