src/share/vm/classfile/stackMapTable.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
bug_8046233_7 Cdiff src/share/vm/classfile/stackMapTable.cpp
src/share/vm/classfile/stackMapTable.cpp
Print this page
*** 136,146 ****
check_new_object(frame, target, CHECK_VERIFY(frame->verifier()));
}
void StackMapTable::check_new_object(
const StackMapFrame* frame, int32_t target, TRAPS) const {
! if (frame->offset() > target && frame->has_new_object()) {
frame->verifier()->verify_error(
ErrorContext::bad_code(frame->offset()),
"Uninitialized object exists on backward branch %d", target);
return;
}
--- 136,149 ----
check_new_object(frame, target, CHECK_VERIFY(frame->verifier()));
}
void StackMapTable::check_new_object(
const StackMapFrame* frame, int32_t target, TRAPS) const {
! int frame_index = get_index_from_offset(target);
! assert(frame_index >= 0 && frame_index < _frame_count, "bad frame index");
! if (frame->offset() > target &&
! frame->has_unique_new_object(_frame_array[frame_index])) {
frame->verifier()->verify_error(
ErrorContext::bad_code(frame->offset()),
"Uninitialized object exists on backward branch %d", target);
return;
}
src/share/vm/classfile/stackMapTable.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File