aboutsummaryrefslogtreecommitdiff
path: root/libjava/include/java-interp.h
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/include/java-interp.h')
-rw-r--r--libjava/include/java-interp.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
index 73ab2fe..aed642b 100644
--- a/libjava/include/java-interp.h
+++ b/libjava/include/java-interp.h
@@ -22,6 +22,8 @@ details. */
#include <java/lang/Class.h>
#include <java/lang/ClassLoader.h>
#include <java/lang/reflect/Modifier.h>
+#include <java/lang/Thread.h>
+#include <gnu/gcj/RawData.h>
// Define this to get the direct-threaded interpreter. If undefined,
// we revert to a basic bytecode interpreter. The former is faster
@@ -290,22 +292,22 @@ public:
struct _Jv_InterpFrame
{
_Jv_InterpMethod *self;
- _Jv_InterpFrame **ptr;
+ java::lang::Thread *thread;
_Jv_InterpFrame *next;
pc_t pc;
- _Jv_InterpFrame (_Jv_InterpMethod *s, _Jv_InterpFrame **n)
+ _Jv_InterpFrame (_Jv_InterpMethod *s, java::lang::Thread *thr)
{
self = s;
- ptr = n;
- next = *n;
- *n = this;
+ thread = thr;
+ next = (_Jv_InterpFrame *) thr->interp_frame;
+ thr->interp_frame = (gnu::gcj::RawData *) this;
pc = NULL;
}
~_Jv_InterpFrame ()
{
- *ptr = next;
+ thread->interp_frame = (gnu::gcj::RawData *) next;
}
};