diff --git a/src/compile.cpp b/src/compile.cpp index fde69807f0..e39f6239d3 100644 --- a/src/compile.cpp +++ b/src/compile.cpp @@ -217,6 +217,8 @@ class MyStackWalker: public Processor::StackWalker { if (trace and trace->stack) { base = trace->base; stack = static_cast(trace->stack); + ip_ = *static_cast(stack); + method_ = methodForIp(t, *static_cast(stack)); nativeMethod = trace->nativeMethod; trace = trace->next; } else { @@ -4077,9 +4079,13 @@ compileMethod2(MyThread* t) (t, resolveThisPointer(t, t->stack, target)), methodOffset(t, target)) = &singletonValue(t, methodCompiled(t, target), 0); } else { +#ifndef VM_STRESS + // valgrind doesn't like this, since the effect of updateCall + // below does not propagate to valgrind's interpreter: { ACQUIRE(t, t->m->classLock); removeCallNode(t, node); } +#endif Context context(t); context.c->updateCall