diff options
Diffstat (limited to 'libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc')
| -rw-r--r-- | libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc | 16 |
1 files changed, 13 insertions, 3 deletions
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<jlong> (info.method)); + jobject this_obj; + if (info.location == -1) - loc = new Location (meth, 0); + { + loc = new Location (meth, 0); + this_obj = NULL; + } else - loc = new Location (meth, info.location); + { + 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<jlong> (vm_frame), loc); + return new VMFrame (thread, reinterpret_cast<jlong> (vm_frame), loc, + this_obj); } jint |

