agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java	Tue Mar 29 13:56:36 2011
--- new/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java	Tue Mar 29 13:56:36 2011

*** 72,84 **** --- 72,81 ---- private static int THREAD_STATUS_PARKED_TIMED; private static int THREAD_STATUS_BLOCKED_ON_MONITOR_ENTER; private static int THREAD_STATUS_TERMINATED; */ // java.lang.Class fields private static OopField hcKlassField; // java.util.concurrent.locks.AbstractOwnableSynchronizer fields private static OopField absOwnSyncOwnerThreadField; static { VM.registerVMInitializedObserver(new Observer() {
*** 266,296 **** --- 263,272 ---- return threadParkBlockerField.getValue(threadOop); } return null; } // initialize fields for java.lang.Class private static void initClassFields() { if (hcKlassField == null) { // hc_klass is a HotSpot magic field and hence we can't // find it from InstanceKlass for java.lang.Class. TypeDataBase db = VM.getVM().getTypeDataBase(); int hcKlassOffset = (int) db.lookupType("java_lang_Class").getCIntegerField("klass_offset").getValue(); if (VM.getVM().isCompressedOopsEnabled()) { hcKlassField = new NarrowOopField(new NamedFieldIdentifier("hc_klass"), hcKlassOffset, true); } else { hcKlassField = new OopField(new NamedFieldIdentifier("hc_klass"), hcKlassOffset, true); } } } /** get klassOop field at offset hc_klass_offset from a java.lang.Class object */ public static Klass classOopToKlass(Oop aClass) { initClassFields(); return (Klass) hcKlassField.getValue(aClass); } // initialize fields for j.u.c.l AbstractOwnableSynchornizer class private static void initAbsOwnSyncFields() { if (absOwnSyncOwnerThreadField == null) { SystemDictionary sysDict = VM.getVM().getSystemDictionary(); InstanceKlass k = sysDict.getAbstractOwnableSynchronizerKlass();

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