mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
6681646: Relocking of a scalar replaced object during deoptimization is broken
Relocking of a thread-local object during deoptimization is broken Reviewed-by: kbr, jrose, never
This commit is contained in:
parent
833746644c
commit
659a8dc7d5
5 changed files with 44 additions and 24 deletions
|
@ -190,7 +190,7 @@ GrowableArray<MonitorInfo*>* compiledVFrame::monitors() const {
|
|||
// Casting away const
|
||||
frame& fr = (frame&) _fr;
|
||||
MonitorInfo* info = new MonitorInfo(fr.compiled_synchronized_native_monitor_owner(nm),
|
||||
fr.compiled_synchronized_native_monitor(nm));
|
||||
fr.compiled_synchronized_native_monitor(nm), false);
|
||||
monitors->push(info);
|
||||
return monitors;
|
||||
}
|
||||
|
@ -202,7 +202,7 @@ GrowableArray<MonitorInfo*>* compiledVFrame::monitors() const {
|
|||
for (int index = 0; index < monitors->length(); index++) {
|
||||
MonitorValue* mv = monitors->at(index);
|
||||
StackValue *owner_sv = create_stack_value(mv->owner()); // it is an oop
|
||||
result->push(new MonitorInfo(owner_sv->get_obj()(), resolve_monitor_lock(mv->basic_lock())));
|
||||
result->push(new MonitorInfo(owner_sv->get_obj()(), resolve_monitor_lock(mv->basic_lock()), mv->eliminated()));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue