--- 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,5 +1,5 @@ /* - * 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 @@ -26,17 +26,19 @@ # include "incls/_scopeDesc.cpp.incl" -ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset) { +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) { +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(); } @@ -45,8 +47,8 @@ _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"); } @@ -57,7 +59,6 @@ _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; @@ -67,7 +68,7 @@ _sender_decode_offset = stream->read_int(); _method = methodHandle((methodOop) stream->read_oop()); - _bci = stream->read_bci_and_reexecute(_reexecute); + _bci = stream->read_bci(); // decode offsets for body and sender _locals_decode_offset = stream->read_int();