agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java	Tue Jul 21 15:54:15 2009
--- new/agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java	Tue Jul 21 15:54:15 2009

*** 39,48 **** --- 39,49 ---- public class ScopeDesc { /** NMethod information */ private NMethod code; private Method method; private int bci; + private boolean reexecute; /** Decoding offsets */ private int decodeOffset; private int senderDecodeOffset; private int localsDecodeOffset; private int expressionsDecodeOffset;
*** 59,69 **** --- 60,70 ---- // Decode header DebugInfoReadStream stream = streamAt(decodeOffset); senderDecodeOffset = stream.readInt(); method = (Method) VM.getVM().getObjectHeap().newOop(stream.readOopHandle()); ! bci = stream.readBCI(); ! setBCIAndReexecute(stream.readInt()); // Decode offsets for body and sender localsDecodeOffset = stream.readInt(); expressionsDecodeOffset = stream.readInt(); monitorsDecodeOffset = stream.readInt(); }
*** 76,95 **** --- 77,97 ---- // Decode header DebugInfoReadStream stream = streamAt(decodeOffset); senderDecodeOffset = stream.readInt(); method = (Method) VM.getVM().getObjectHeap().newOop(stream.readOopHandle()); ! bci = stream.readBCI(); ! setBCIAndReexecute(stream.readInt()); // Decode offsets for body and sender localsDecodeOffset = stream.readInt(); expressionsDecodeOffset = stream.readInt(); monitorsDecodeOffset = stream.readInt(); } public NMethod getNMethod() { return code; } public Method getMethod() { return method; } public int getBCI() { return bci; } + public boolean getReexecute() {return reexecute;} /** Returns a List<ScopeValue> */ public List getLocals() { return decodeScopeValues(localsDecodeOffset); }
*** 148,164 **** --- 150,172 ---- public void printValueOn(PrintStream tty) { tty.print("ScopeDesc for "); method.printValueOn(tty); tty.println(" @bci " + bci); + tty.println(" reexecute: " + reexecute); } // FIXME: add more accessors //-------------------------------------------------------------------------------- // Internals only below this point // + private void setBCIAndReexecute(int combination) { + int InvocationEntryBci = VM.getVM().getInvocationEntryBCI(); + bci = (combination >> 1) + InvocationEntryBci; + reexecute = (combination & 1)==1 ? true : false; + } private DebugInfoReadStream streamAt(int decodeOffset) { return new DebugInfoReadStream(code, decodeOffset, objects); }

agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File