agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java Tue Mar 29 13:56:32 2011
--- new/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java Tue Mar 29 13:56:32 2011
*** 360,370 ****
--- 360,379 ----
if (klass.equals(constantPoolCacheKlassHandle)) return new ConstantPoolCache(handle, this);
if (!VM.getVM().isCore()) {
if (klass.equals(compiledICHolderKlassHandle)) return new CompiledICHolder(handle, this);
if (klass.equals(methodDataKlassHandle)) return new MethodData(handle, this);
}
! if (klass.equals(instanceKlassKlassHandle)) return new InstanceKlass(handle, this);
! if (klass.equals(instanceKlassKlassHandle)) {
+ InstanceKlass ik = new InstanceKlass(handle, this);
+ if (ik.getName().asString().equals("java/lang/Class")) {
+ // We would normally do this using the vtable style
+ // lookup but since it's not used for these currently
+ // it's simpler to just check for the name.
+ return new InstanceMirrorKlass(handle, this);
+ }
+ return ik;
+ }
if (klass.equals(objArrayKlassKlassHandle)) return new ObjArrayKlass(handle, this);
if (klass.equals(typeArrayKlassKlassHandle)) return new TypeArrayKlass(handle, this);
// Lastly check if obj.klass().klass() is on of the root objects
OopHandle klassKlass = Oop.getKlassForOopHandle(klass);
agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File