src/share/vm/code/scopeDesc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/code/scopeDesc.cpp	Wed Aug 19 10:35:04 2009
--- new/src/share/vm/code/scopeDesc.cpp	Wed Aug 19 10:35:04 2009

*** 1,7 **** --- 1,7 ---- /* ! * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. ! * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 24,54 **** --- 24,56 ---- # include "incls/_precompiled.incl" # include "incls/_scopeDesc.cpp.incl" ! ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute) { _code = code; _decode_offset = decode_offset; _objects = decode_object_values(obj_decode_offset); + _reexecute = reexecute; decode_body(); } ! ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, bool reexecute) { _code = code; _decode_offset = decode_offset; _objects = decode_object_values(DebugInformationRecorder::serialized_null); + _reexecute = reexecute; 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 decode_body(); assert(_reexecute == false, "reexecute not allowed"); } void ScopeDesc::decode_body() { if (decode_offset() == DebugInformationRecorder::serialized_null) {
*** 55,75 **** --- 57,76 ---- // This is a sentinel record, which is only relevant to // approximate queries. Decode a reasonable frame. _sender_decode_offset = DebugInformationRecorder::serialized_null; _method = methodHandle(_code->method()); _bci = InvocationEntryBci; _reexecute = false; _locals_decode_offset = DebugInformationRecorder::serialized_null; _expressions_decode_offset = DebugInformationRecorder::serialized_null; _monitors_decode_offset = DebugInformationRecorder::serialized_null; } else { // decode header DebugInfoReadStream* stream = stream_at(decode_offset()); _sender_decode_offset = stream->read_int(); _method = methodHandle((methodOop) stream->read_oop()); ! _bci = stream->read_bci_and_reexecute(_reexecute); // decode offsets for body and sender _locals_decode_offset = stream->read_int(); _expressions_decode_offset = stream->read_int(); _monitors_decode_offset = stream->read_int();

src/share/vm/code/scopeDesc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File