From 538639f4ab33f1a9f8c347a8f1e2369fdc4989e4 Mon Sep 17 00:00:00 2001 From: Kyle Galloway Date: Thu, 17 May 2007 18:36:12 +0000 Subject: [PATCH] VMFrame.java (): Add parameter for "this" pointer. 2007-05-17 Kyle Galloway * gnu/classpath/jdwp/VMFrame.java (): Add parameter for "this" pointer. * gnu/classpath/jdwp/VMFrame.h: Regenerated. * classpath/lib/gnu/classpath/jdwp/VMFrame.class: Rebuilt. * gnu/classpath/jdwp/natVMVirtualMachine.cc (getFrame): Use new VMFrame constructor. From-SVN: r124806 --- libjava/ChangeLog | 9 ++++++++ .../lib/gnu/classpath/jdwp/VMFrame.class | Bin 1160 -> 1210 bytes libjava/gnu/classpath/jdwp/VMFrame.h | 2 +- libjava/gnu/classpath/jdwp/VMFrame.java | 4 +++- .../gnu/classpath/jdwp/natVMVirtualMachine.cc | 20 +++++++++++++----- 5 files changed, 28 insertions(+), 7 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 1aae32413bf..b4c913b4f52 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,12 @@ +2007-05-17 Kyle Galloway + + * gnu/classpath/jdwp/VMFrame.java (): Add parameter for "this" + pointer. + * gnu/classpath/jdwp/VMFrame.h: Regenerated. + * classpath/lib/gnu/classpath/jdwp/VMFrame.class: Rebuilt. + * gnu/classpath/jdwp/natVMVirtualMachine.cc (getFrame): Use new + VMFrame constructor. + 2007-05-16 David Daney * include/java-stack.h (_Jv_FrameInfo): Remove union definition. diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/VMFrame.class b/libjava/classpath/lib/gnu/classpath/jdwp/VMFrame.class index cf8f695204e4f85c4c2ba339fdff0dc28614b1b0..ce46cf0b91b303b5dfd416634f49525e98f0ba8a 100644 GIT binary patch delta 440 zcmZvXyGjE=6o&uVOJK$&C9)HNoGPhcU6*UmyVk_bywykKDy#l|*F}cAd54RS-_ARL5>{H`i*2;NSBEyk;3n`J!P$ww zT@7o;*DB4{1P8;Yg8?{doizlnUk0bOqw{L0+U!R?8CT7Fm`G7pR=y!4ixEa-K7uP< zE25ceN65X9kUO8Tp(!ik(bhNgUK*lf!2~aO$o}3H|SX7^;*X(f@|2gvcSfV;i oj88p2$d<3jwMisDOP1dDg-clO!bTT%pL=jYPapcyWo@hc0S25hX#fBK delta 412 zcmZvYJ4*vW6otRp>vUXr#CBB0nAg^&QXI% zEjem3u7n&d$m5G$WJz;ETu1vbmj(8j+M__xHR8PIE<1KOD6)-VnHFfTuqwS#cRT&A w%yjb`3*YsBpLA=iYnH8L>BisE+o9%7eP(I)go=xkhu@2vj=dY|-gdH`AD_@CVgLXD diff --git a/libjava/gnu/classpath/jdwp/VMFrame.h b/libjava/gnu/classpath/jdwp/VMFrame.h index 0108e7b96d5..737f39de28b 100644 --- a/libjava/gnu/classpath/jdwp/VMFrame.h +++ b/libjava/gnu/classpath/jdwp/VMFrame.h @@ -33,7 +33,7 @@ class gnu::classpath::jdwp::VMFrame : public ::java::lang::Object { public: - VMFrame(::java::lang::Thread *, jlong, ::gnu::classpath::jdwp::util::Location *); + VMFrame(::java::lang::Thread *, jlong, ::gnu::classpath::jdwp::util::Location *, ::java::lang::Object *); virtual ::gnu::classpath::jdwp::util::Location * getLocation(); virtual ::gnu::classpath::jdwp::value::Value * getValue(jint, jbyte); virtual void setValue(jint, ::gnu::classpath::jdwp::value::Value *); diff --git a/libjava/gnu/classpath/jdwp/VMFrame.java b/libjava/gnu/classpath/jdwp/VMFrame.java index 4b144af75c3..de2640c85ff 100644 --- a/libjava/gnu/classpath/jdwp/VMFrame.java +++ b/libjava/gnu/classpath/jdwp/VMFrame.java @@ -74,11 +74,13 @@ public class VMFrame * @param frame_id a long, the jframeID of this frame * @param frame_loc a Location, the location of this frame */ - public VMFrame(Thread thr, long frame_id, Location frame_loc) + public VMFrame(Thread thr, long frame_id, Location frame_loc, + Object frame_obj) { thread = thr; id = frame_id; loc = frame_loc; + obj = frame_obj; } /** diff --git a/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc b/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc index 7fee49bee4c..db33781378e 100644 --- a/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc +++ b/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc @@ -618,12 +618,22 @@ getFrame (Thread *thread, jlong frameID) VMMethod *meth = getClassMethod (klass, reinterpret_cast (info.method)); - if (info.location == -1) - loc = new Location (meth, 0); - else - loc = new Location (meth, info.location); + jobject this_obj; - return new VMFrame (thread, reinterpret_cast (vm_frame), loc); + if (info.location == -1) + { + loc = new Location (meth, 0); + this_obj = NULL; + } + else + { + loc = new Location (meth, info.location); + _Jv_InterpFrame *iframe = reinterpret_cast<_Jv_InterpFrame *> (vm_frame); + this_obj = iframe->get_this_ptr (); + } + + return new VMFrame (thread, reinterpret_cast (vm_frame), loc, + this_obj); } jint