diff agent/src/share/classes/sun/jvm/hotspot/memory/FreeChunk.java @ 904:ef671fb22f73

6868051: (SA) FreeChunk support for compressed oops is broken Reviewed-by: kvn, dcubed
author never
date Thu, 06 Aug 2009 12:24:41 -0700
parents d1605aabd0a1
children 89e0543e1737
line wrap: on
line diff
--- a/agent/src/share/classes/sun/jvm/hotspot/memory/FreeChunk.java	Thu Aug 06 09:37:26 2009 -0700
+++ b/agent/src/share/classes/sun/jvm/hotspot/memory/FreeChunk.java	Thu Aug 06 12:24:41 2009 -0700
@@ -63,7 +63,7 @@
 
    public long size() {
       if (VM.getVM().isCompressedOopsEnabled()) {
-        Mark mark = new Mark(sizeField.getValue(addr));
+        Mark mark = new Mark(addr.addOffsetTo(sizeField.getOffset()));
         return mark.getSize();
       } else {
         Address size = sizeField.getValue(addr);
@@ -83,7 +83,7 @@
 
    public boolean isFree() {
       if (VM.getVM().isCompressedOopsEnabled()) {
-        Mark mark = new Mark(sizeField.getValue(addr));
+        Mark mark = new Mark(addr.addOffsetTo(sizeField.getOffset()));
         return mark.isCmsFreeChunk();
       } else {
         Address prev = prevField.getValue(addr);