8077832: SA's dumpreplaydata, dumpcfg and buildreplayjars are broken
Summary: SA code out of sync with hotspot code
Reviewed-by: dsamersoff, sla, kvn
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodData.java Wed Apr 15 11:01:56 2015 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodData.java Wed Apr 15 11:36:42 2015 +0200
@@ -148,7 +148,7 @@
ParametersTypeData<ciKlass,ciMethod> parametersTypeData() {
Address base = getAddress().addOffsetTo(origField.getOffset());
int di = (int)parametersTypeDataDi.getValue(base);
- if (di == -1) {
+ if (di == -1 || di == -2) {
return null;
}
DataLayout dataLayout = new DataLayout(dataField.getValue(getAddress()), di);
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java Wed Apr 15 11:01:56 2015 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java Wed Apr 15 11:36:42 2015 +0200
@@ -328,7 +328,7 @@
}
public Symbol getUnresolvedStringAt(int which) {
- return getSymbolAt(which);
+ return getSlotAt(which).getSymbol();
}
// returns null, if not resolved.
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java Wed Apr 15 11:01:56 2015 +0200
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java Wed Apr 15 11:36:42 2015 +0200
@@ -42,10 +42,10 @@
private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
Type type = db.lookupType("PhaseCFG");
- numBlocksField = new CIntField(type.getCIntegerField("_num_blocks"), 0);
+ numBlocksField = new CIntField(type.getCIntegerField("_number_of_blocks"), 0);
blocksField = type.getAddressField("_blocks");
bbsField = type.getAddressField("_node_to_block_mapping");
- brootField = type.getAddressField("_broot");
+ brootField = type.getAddressField("_root_block");
}
private static CIntField numBlocksField;