* Removed all Id tags.
[cacao.git] / src / vm / jit / stacktrace.c
index 99f02e0c31f54972c763ede0ce8d5754f23f6b36..98e96d149af0121bbf9933d24e52524131b7824b 100644 (file)
@@ -22,8 +22,6 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: stacktrace.c 7840 2007-04-30 10:53:13Z tbfg $
-
 */
 
 
@@ -42,6 +40,7 @@
 
 #include "vm/global.h"                   /* required here for native includes */
 #include "native/jni.h"
+#include "native/llni.h"
 #include "native/include/java_lang_Throwable.h"
 
 #if defined(WITH_CLASSPATH_GNU)
@@ -733,14 +732,14 @@ return_NULL:
 
 *******************************************************************************/
 
-java_objectarray *stacktrace_getClassContext(void)
+java_handle_objectarray_t *stacktrace_getClassContext(void)
 {
-       stacktracebuffer  *stb;
-       stacktrace_entry  *ste;
-       java_objectarray  *oa;
-       s4                 oalength;
-       s4                 i;
-       s4                 dumpsize;
+       stacktracebuffer          *stb;
+       stacktrace_entry          *ste;
+       java_handle_objectarray_t *oa;
+       s4                         oalength;
+       s4                         i;
+       s4                         dumpsize;
        CYCLES_STATS_DECLARE_AND_START
 
        /* mark start of dump memory area */
@@ -781,7 +780,7 @@ java_objectarray *stacktrace_getClassContext(void)
                        continue;
                }
 
-               oa->data[i] = (java_objectheader *) ste->method->class;
+               oa->data[i] = (java_object_t *) ste->method->class;
        }
 
        /* release dump memory */
@@ -883,17 +882,17 @@ return_NULL:
 *******************************************************************************/
 
 #if defined(ENABLE_JAVASE)
-java_objectarray *stacktrace_getStack(void)
+java_handle_objectarray_t *stacktrace_getStack(void)
 {
-       stacktracebuffer  *stb;
-       stacktrace_entry  *ste;
-       java_objectarray  *oa;
-       java_objectarray  *classes;
-       java_objectarray  *methodnames;
-       classinfo         *c;
-       java_objectheader *string;
-       s4                 i;
-       s4                 dumpsize;
+       stacktracebuffer          *stb;
+       stacktrace_entry          *ste;
+       java_handle_objectarray_t *oa;
+       java_handle_objectarray_t *classes;
+       java_handle_objectarray_t *methodnames;
+       classinfo                 *c;
+       java_handle_t             *string;
+       s4                         i;
+       s4                         dumpsize;
        CYCLES_STATS_DECLARE_AND_START
 
        /* mark start of dump memory area */
@@ -930,15 +929,15 @@ java_objectarray *stacktrace_getStack(void)
 
        /* set up the 2-dimensional array */
 
-       oa->data[0] = (java_objectheader *) classes;
-       oa->data[1] = (java_objectheader *) methodnames;
+       oa->data[0] = (java_object_t *) classes;
+       oa->data[1] = (java_object_t *) methodnames;
 
        /* iterate over all stacktrace entries */
 
        for (i = 0, ste = &(stb->entries[0]); i < stb->used; i++, ste++) {
                c = ste->method->class;
 
-               classes->data[i] = (java_objectheader *) c;
+               classes->data[i] = (java_object_t *) c;
 
                string = javastring_new(ste->method->name);
 
@@ -1014,7 +1013,7 @@ void stacktrace_print_trace_from_buffer(stacktracebuffer *stb)
 
 *******************************************************************************/
 
-void stacktrace_print_trace(java_objectheader *xptr)
+void stacktrace_print_trace(java_handle_t *xptr)
 {
        java_lang_Throwable   *t;
 #if defined(WITH_CLASSPATH_GNU)
@@ -1031,14 +1030,16 @@ void stacktrace_print_trace(java_objectheader *xptr)
        /* now print the stacktrace */
 
 #if defined(WITH_CLASSPATH_GNU)
-       vmt = t->vmState;
-       stc = (stacktracecontainer *) vmt->vmData;
-       stb = &(stc->stb);
-#elif defined(WITH_CLASSPATH_CLDC1_1)
+       LLNI_field_get_ref(t, vmState, vmt);
+       stc = (stacktracecontainer *) LLNI_field_direct(vmt, vmData);
+#elif defined(WITH_CLASSPATH_SUN) || defined(WITH_CLASSPATH_CLDC1_1)
        stc = (stacktracecontainer *) t->backtrace;
-       stb = &(stc->stb);
+#else
+# error unknown classpath configuration
 #endif
 
+       stb = &(stc->stb);
+
        stacktrace_print_trace_from_buffer(stb);
 }