< prev index next >

src/hotspot/share/runtime/vframe_hp.cpp

Print this page
@@ -233,11 +233,11 @@
    const_cast<RegisterMap*>(&_reg_map)->set_stack_chunk_index(index);
    return res;
  }
  
  BasicLock* compiledVFrame::resolve_monitor_lock(Location location) const {
-   return StackValue::resolve_monitor_lock(&_fr, location);
+   return StackValue::resolve_monitor_lock(stack_chunk() == nullptr ? _fr : stack_chunk()->derelativize(_fr), location);
  }
  
  
  GrowableArray<MonitorInfo*>* compiledVFrame::monitors() const {
    // Natives has no scope

@@ -282,10 +282,11 @@
      }
    }
  
    // Replace the original values with any stores that have been
    // performed through compiledVFrame::update_monitors.
+   if (thread() == nullptr) return result; // Unmounted continuations have no thread so nothing to do.
    GrowableArrayView<jvmtiDeferredLocalVariableSet*>* list = JvmtiDeferredUpdates::deferred_locals(thread());
    if (list != nullptr ) {
      // In real life this never happens or is typically a single element search
      for (int i = 0; i < list->length(); i++) {
        if (list->at(i)->matches(this)) {
< prev index next >