agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java Wed Sep 25 13:52:34 2013
--- new/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java Wed Sep 25 13:52:34 2013
*** 132,150 ****
--- 132,148 ----
// command line flags supplied to VM - see struct Flag in globals.hpp
public static final class Flag {
private String type;
private String name;
private Address addr;
! private String kind;
private int origin;
! private int flags;
! private Flag(String type, String name, Address addr, String kind, int origin) {
! private Flag(String type, String name, Address addr, int flags) {
this.type = type;
this.name = name;
this.addr = addr;
! this.kind = kind;
this.origin = origin;
! this.flags = flags;
}
public String getType() {
return type;
}
*** 155,182 ****
--- 153,175 ----
public Address getAddress() {
return addr;
}
public String getKind() {
return kind;
}
public int getOrigin() {
! return origin;
! return flags & 0xF; // XXX can we get the mask bits from somewhere?
}
public boolean isBool() {
return type.equals("bool");
}
public boolean getBool() {
if (Assert.ASSERTS_ENABLED) {
Assert.that(isBool(), "not a bool flag!");
}
! return addr.getCIntegerAt(0, boolType.getSize(), boolType.isUnsigned()) != 0;
!= 0;
}
public boolean isIntx() {
return type.equals("intx");
}
*** 841,866 ****
--- 834,857 ----
// NOTE: last flag contains null values.
commandLineFlags = new Flag[numFlags - 1];
Address flagAddr = flagType.getAddressField("flags").getValue();
! AddressField typeFld = flagType.getAddressField("_type");
! AddressField nameFld = flagType.getAddressField("_name");
! AddressField addrFld = flagType.getAddressField("_addr");
! AddressField kindFld = flagType.getAddressField("kind");
CIntField originFld = new CIntField(flagType.getCIntegerField("origin"), 0);
! CIntField flagsFld = new CIntField(flagType.getCIntegerField("_flags"), 0);
long flagSize = flagType.getSize(); // sizeof(Flag)
// NOTE: last flag contains null values.
for (int f = 0; f < numFlags - 1; f++) {
String type = CStringUtilities.getString(typeFld.getValue(flagAddr));
String name = CStringUtilities.getString(nameFld.getValue(flagAddr));
Address addr = addrFld.getValue(flagAddr);
! String kind = CStringUtilities.getString(kindFld.getValue(flagAddr));
! int origin = (int)originFld.getValue(flagAddr);
commandLineFlags[f] = new Flag(type, name, addr, kind, origin);
! int flags = (int)flagsFld.getValue(flagAddr);
! commandLineFlags[f] = new Flag(type, name, addr, flags);
flagAddr = flagAddr.addOffsetTo(flagSize);
}
// sort flags by name
Arrays.sort(commandLineFlags, new Comparator() {
agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File