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