# HG changeset patch # User poonam # Date 1238174994 25200 # Node ID f30ba3b3659955263850246b29aadb59408cab2f # Parent 520d43965b1fc38db4939f4719ed00e6fd30b3e0 6822407: heapOopSize lookup is incorrect in Serviceability Agent. Summary: heapOopSize symbol should be declared as constant in vmStructs and should not be looked up in readVMIntConstants(). Reviewed-by: never, swamyv, coleenp diff -r 520d43965b1f -r f30ba3b36599 agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java --- a/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java Fri Mar 27 01:35:39 2009 -0500 +++ b/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java Fri Mar 27 10:29:54 2009 -0700 @@ -306,8 +306,6 @@ entryAddr = entryAddr.addOffsetTo(intConstantEntryArrayStride); } while (nameAddr != null); - String symbol = "heapOopSize"; // global int constant and value is initialized at runtime. - addIntConstant(symbol, (int)lookupInProcess(symbol).getCIntegerAt(0, 4, false)); } private void readVMLongConstants() { diff -r 520d43965b1f -r f30ba3b36599 agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java --- a/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java Fri Mar 27 01:35:39 2009 -0500 +++ b/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java Fri Mar 27 10:29:54 2009 -0700 @@ -342,12 +342,14 @@ throw new RuntimeException("Attempt to initialize VM twice"); } soleInstance = new VM(db, debugger, debugger.getMachineDescription().isBigEndian()); - debugger.putHeapConst(soleInstance.getHeapOopSize(), Universe.getNarrowOopBase(), - Universe.getNarrowOopShift()); + for (Iterator iter = vmInitializedObservers.iterator(); iter.hasNext(); ) { ((Observer) iter.next()).update(null, null); } + debugger.putHeapConst(soleInstance.getHeapOopSize(), Universe.getNarrowOopBase(), + Universe.getNarrowOopShift()); + } /** This is used by the debugging system */ diff -r 520d43965b1f -r f30ba3b36599 src/share/vm/runtime/vmStructs.cpp --- a/src/share/vm/runtime/vmStructs.cpp Fri Mar 27 01:35:39 2009 -0500 +++ b/src/share/vm/runtime/vmStructs.cpp Fri Mar 27 10:29:54 2009 -0700 @@ -1320,6 +1320,7 @@ /****************/ \ \ declare_constant(oopSize) \ + declare_constant(heapOopSize) \ declare_constant(LogBytesPerWord) \ declare_constant(BytesPerLong) \ \