8077832: SA's dumpreplaydata, dumpcfg and buildreplayjars are broken
authorroland
Wed, 15 Apr 2015 11:36:42 +0200
changeset 30295 d91d9c285139
parent 30226 5f1a3a275862
child 30297 fdef6544a94f
8077832: SA's dumpreplaydata, dumpcfg and buildreplayjars are broken Summary: SA code out of sync with hotspot code Reviewed-by: dsamersoff, sla, kvn
hotspot/agent/src/share/classes/sun/jvm/hotspot/ci/ciMethodData.java
hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java
hotspot/agent/src/share/classes/sun/jvm/hotspot/opto/PhaseCFG.java
--- 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;