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	Wed Aug 19 10:34:57 2009
--- new/agent/src/share/classes/sun/jvm/hotspot/code/ScopeDesc.java	Wed Aug 19 10:34:57 2009

*** 50,97 **** --- 50,99 ---- private int monitorsDecodeOffset; /** Scalar replaced bjects pool */ private List objects; // ArrayList<ScopeValue> ! public ScopeDesc(NMethod code, int decodeOffset, boolean reexecute) { this.code = code; this.decodeOffset = decodeOffset; this.objects = decodeObjectValues(DebugInformationRecorder.SERIALIZED_NULL); + this.reexecute = reexecute; // Decode header DebugInfoReadStream stream = streamAt(decodeOffset); senderDecodeOffset = stream.readInt(); method = (Method) VM.getVM().getObjectHeap().newOop(stream.readOopHandle()); ! setBCIAndReexecute(stream.readInt()); ! bci = stream.readBCI(); // Decode offsets for body and sender localsDecodeOffset = stream.readInt(); expressionsDecodeOffset = stream.readInt(); monitorsDecodeOffset = stream.readInt(); } ! public ScopeDesc(NMethod code, int decodeOffset, int objectDecodeOffset, boolean reexecute) { this.code = code; this.decodeOffset = decodeOffset; this.objects = decodeObjectValues(objectDecodeOffset); + this.reexecute = reexecute; // Decode header DebugInfoReadStream stream = streamAt(decodeOffset); senderDecodeOffset = stream.readInt(); method = (Method) VM.getVM().getObjectHeap().newOop(stream.readOopHandle()); ! setBCIAndReexecute(stream.readInt()); ! bci = stream.readBCI(); // 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&lt;ScopeValue&gt; */ public List getLocals() { return decodeScopeValues(localsDecodeOffset); }
*** 115,125 **** --- 117,127 ---- public ScopeDesc sender() { if (isTop()) { return null; } ! return new ScopeDesc(code, senderDecodeOffset, false); } /** Returns where the scope was decoded */ public int getDecodeOffset() { return decodeOffset;
*** 149,173 **** --- 151,169 ---- } public void printValueOn(PrintStream tty) { tty.print("ScopeDesc for "); method.printValueOn(tty); - tty.println(" @bci " + bci); ! tty.println(" reexecute: " + reexecute); ! 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); } /** Returns a List&lt;ScopeValue&gt; or null if no values were present */

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