hotspot/src/share/vm/code/scopeDesc.cpp
changeset 4894 8a76fd3d098d
parent 3686 69c1b5228547
child 5547 f4b087cbb361
equal deleted inserted replaced
4893:fedc27b54caa 4894:8a76fd3d098d
    24 
    24 
    25 # include "incls/_precompiled.incl"
    25 # include "incls/_precompiled.incl"
    26 # include "incls/_scopeDesc.cpp.incl"
    26 # include "incls/_scopeDesc.cpp.incl"
    27 
    27 
    28 
    28 
    29 ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute) {
    29 ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute, bool return_oop) {
    30   _code          = code;
    30   _code          = code;
    31   _decode_offset = decode_offset;
    31   _decode_offset = decode_offset;
    32   _objects       = decode_object_values(obj_decode_offset);
    32   _objects       = decode_object_values(obj_decode_offset);
    33   _reexecute     = reexecute;
    33   _reexecute     = reexecute;
       
    34   _return_oop    = return_oop;
    34   decode_body();
    35   decode_body();
    35 }
    36 }
    36 
    37 
    37 ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, bool reexecute) {
    38 ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, bool reexecute, bool return_oop) {
    38   _code          = code;
    39   _code          = code;
    39   _decode_offset = decode_offset;
    40   _decode_offset = decode_offset;
    40   _objects       = decode_object_values(DebugInformationRecorder::serialized_null);
    41   _objects       = decode_object_values(DebugInformationRecorder::serialized_null);
    41   _reexecute     = reexecute;
    42   _reexecute     = reexecute;
       
    43   _return_oop    = return_oop;
    42   decode_body();
    44   decode_body();
    43 }
    45 }
    44 
    46 
    45 
    47 
    46 ScopeDesc::ScopeDesc(const ScopeDesc* parent) {
    48 ScopeDesc::ScopeDesc(const ScopeDesc* parent) {
    47   _code          = parent->_code;
    49   _code          = parent->_code;
    48   _decode_offset = parent->_sender_decode_offset;
    50   _decode_offset = parent->_sender_decode_offset;
    49   _objects       = parent->_objects;
    51   _objects       = parent->_objects;
    50   _reexecute     = false; //reexecute only applies to the first scope
    52   _reexecute     = false; //reexecute only applies to the first scope
       
    53   _return_oop    = false;
    51   decode_body();
    54   decode_body();
    52 }
    55 }
    53 
    56 
    54 
    57 
    55 void ScopeDesc::decode_body() {
    58 void ScopeDesc::decode_body() {