Mercurial > hg > truffle
comparison 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 |
comparison
equal
deleted
inserted
replaced
903:15bbd3f505c0 | 904:ef671fb22f73 |
---|---|
61 return (FreeChunk) VMObjectFactory.newObject(FreeChunk.class, prev); | 61 return (FreeChunk) VMObjectFactory.newObject(FreeChunk.class, prev); |
62 } | 62 } |
63 | 63 |
64 public long size() { | 64 public long size() { |
65 if (VM.getVM().isCompressedOopsEnabled()) { | 65 if (VM.getVM().isCompressedOopsEnabled()) { |
66 Mark mark = new Mark(sizeField.getValue(addr)); | 66 Mark mark = new Mark(addr.addOffsetTo(sizeField.getOffset())); |
67 return mark.getSize(); | 67 return mark.getSize(); |
68 } else { | 68 } else { |
69 Address size = sizeField.getValue(addr); | 69 Address size = sizeField.getValue(addr); |
70 Debugger dbg = VM.getVM().getDebugger(); | 70 Debugger dbg = VM.getVM().getDebugger(); |
71 return dbg.getAddressValue(size); | 71 return dbg.getAddressValue(size); |
81 return f.isFree(); | 81 return f.isFree(); |
82 } | 82 } |
83 | 83 |
84 public boolean isFree() { | 84 public boolean isFree() { |
85 if (VM.getVM().isCompressedOopsEnabled()) { | 85 if (VM.getVM().isCompressedOopsEnabled()) { |
86 Mark mark = new Mark(sizeField.getValue(addr)); | 86 Mark mark = new Mark(addr.addOffsetTo(sizeField.getOffset())); |
87 return mark.isCmsFreeChunk(); | 87 return mark.isCmsFreeChunk(); |
88 } else { | 88 } else { |
89 Address prev = prevField.getValue(addr); | 89 Address prev = prevField.getValue(addr); |
90 Debugger dbg = VM.getVM().getDebugger(); | 90 Debugger dbg = VM.getVM().getDebugger(); |
91 long word = dbg.getAddressValue(prev); | 91 long word = dbg.getAddressValue(prev); |