java-interp.h (_Jv_InterpFrame): obj_ptr field added to hold "this" pointer for frame.

2007-02-06  Kyle Galloway  <kgallowa@redhat.com>

    * include/java-interp.h (_Jv_InterpFrame): obj_ptr field added
    to hold "this" pointer for frame.
    (_Jv_InterpFrame::get_this_ptr): New method.
    * interpret-run.cc: Copy the "this" pointer into obj_ptr.

From-SVN: r121717
This commit is contained in:
Kyle Galloway
2007-02-08 18:01:56 +00:00
committed by Kyle Galloway
parent 9f05adb09f
commit 72268e157f
3 changed files with 25 additions and 0 deletions

View File

@@ -387,6 +387,9 @@ public:
_Jv_word *locals;
char *locals_type;
// Object pointer for this frame ("this")
jobject obj_ptr;
_Jv_InterpFrame (void *meth, java::lang::Thread *thr, jclass proxyCls = NULL)
: _Jv_Frame (reinterpret_cast<_Jv_MethodBase *> (meth), thr,
frame_interpreter)
@@ -394,12 +397,18 @@ public:
next_interp = (_Jv_InterpFrame *) thr->interp_frame;
proxyClass = proxyCls;
thr->interp_frame = (gnu::gcj::RawData *) this;
obj_ptr = NULL;
}
~_Jv_InterpFrame ()
{
thread->interp_frame = (gnu::gcj::RawData *) next_interp;
}
jobject get_this_ptr ()
{
return obj_ptr;
}
};
// A native frame in the call stack really just a placeholder