--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java Fri Nov 05 14:49:50 2010 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java Sat Nov 06 02:53:59 2010 -0700
@@ -303,12 +303,12 @@
case JVM_CONSTANT_MethodHandle: {
dos.writeByte(cpConstType);
int value = cpool.getIntAt(ci);
- short bootstrapMethodIndex = (short) extractLowShortFromInt(value);
- short nameAndTypeIndex = (short) extractHighShortFromInt(value);
- dos.writeShort(bootstrapMethodIndex);
- dos.writeShort(nameAndTypeIndex);
- if (DEBUG) debugMessage("CP[" + ci + "] = indy BSM = " +
- bootstrapMethodIndex + ", N&T = " + nameAndTypeIndex);
+ byte refKind = (byte) extractLowShortFromInt(value);
+ short memberIndex = (short) extractHighShortFromInt(value);
+ dos.writeByte(refKind);
+ dos.writeShort(memberIndex);
+ if (DEBUG) debugMessage("CP[" + ci + "] = MH kind = " +
+ refKind + ", mem = " + memberIndex);
break;
}
--- a/hotspot/src/share/vm/runtime/vmStructs.cpp Fri Nov 05 14:49:50 2010 -0700
+++ b/hotspot/src/share/vm/runtime/vmStructs.cpp Sat Nov 06 02:53:59 2010 -0700
@@ -86,6 +86,7 @@
nonstatic_field(constantPoolOopDesc, _tags, typeArrayOop) \
nonstatic_field(constantPoolOopDesc, _cache, constantPoolCacheOop) \
nonstatic_field(constantPoolOopDesc, _pool_holder, klassOop) \
+ nonstatic_field(constantPoolOopDesc, _operands, typeArrayOop) \
nonstatic_field(constantPoolOopDesc, _length, int) \
nonstatic_field(constantPoolCacheOopDesc, _length, int) \
nonstatic_field(constantPoolCacheOopDesc, _constant_pool, constantPoolOop) \