1package sun.jvm.hotspot.utilities; 2 3import java.util.Observable; 4import java.util.Observer; 5 6import sun.jvm.hotspot.debugger.Address; 7import sun.jvm.hotspot.runtime.VM; 8import sun.jvm.hotspot.types.Type; 9import sun.jvm.hotspot.types.TypeDataBase; 10import sun.jvm.hotspot.types.WrongTypeException; 11 12public class IntArray extends GenericArray { 13 static { 14 VM.registerVMInitializedObserver(new Observer() { 15 public void update(Observable o, Object data) { 16 initialize(VM.getVM().getTypeDataBase()); 17 } 18 }); 19 } 20 21 private static synchronized void initialize(TypeDataBase db) throws WrongTypeException { 22 elemType = db.lookupType("int"); 23 24 Type type = db.lookupType("Array<int>"); 25 dataFieldOffset = type.getAddressField("_data").getOffset(); 26 } 27 28 private static long dataFieldOffset; 29 protected static Type elemType; 30 31 public IntArray(Address addr) { 32 super(addr, dataFieldOffset); 33 } 34 35 public int at(int i) { 36 return (int)getIntegerAt(i); 37 } 38 39 public Type getElemType() { 40 return elemType; 41 } 42} 43