< prev index next >
src/hotspot/share/code/scopeDesc.cpp
Print this page
rev 53033 : imported patch at_scope
*** 49,68 ****
_return_oop = return_oop;
decode_body();
}
! ScopeDesc::ScopeDesc(const ScopeDesc* parent) {
_code = parent->_code;
! _decode_offset = parent->_sender_decode_offset;
_objects = parent->_objects;
_reexecute = false; //reexecute only applies to the first scope
_rethrow_exception = false;
_return_oop = false;
decode_body();
}
void ScopeDesc::decode_body() {
if (decode_offset() == DebugInformationRecorder::serialized_null) {
// This is a sentinel record, which is only relevant to
// approximate queries. Decode a reasonable frame.
--- 49,76 ----
_return_oop = return_oop;
decode_body();
}
! void ScopeDesc::initialize(const ScopeDesc* parent, int decode_offset) {
_code = parent->_code;
! _decode_offset = decode_offset;
_objects = parent->_objects;
_reexecute = false; //reexecute only applies to the first scope
_rethrow_exception = false;
_return_oop = false;
decode_body();
}
+ ScopeDesc::ScopeDesc(const ScopeDesc* parent) {
+ initialize(parent, parent->_sender_decode_offset);
+ }
+
+ ScopeDesc::ScopeDesc(const ScopeDesc* parent, int decode_offset) {
+ initialize(parent, decode_offset);
+ }
+
void ScopeDesc::decode_body() {
if (decode_offset() == DebugInformationRecorder::serialized_null) {
// This is a sentinel record, which is only relevant to
// approximate queries. Decode a reasonable frame.
< prev index next >