equal
deleted
inserted
replaced
22 */ |
22 */ |
23 |
23 |
24 #include "precompiled.hpp" |
24 #include "precompiled.hpp" |
25 #include "classfile/classLoaderData.hpp" |
25 #include "classfile/classLoaderData.hpp" |
26 #include "classfile/classLoaderDataGraph.hpp" |
26 #include "classfile/classLoaderDataGraph.hpp" |
|
27 #include "gc/z/zAddress.inline.hpp" |
27 #include "gc/z/zBarrier.inline.hpp" |
28 #include "gc/z/zBarrier.inline.hpp" |
28 #include "gc/z/zGlobals.hpp" |
29 #include "gc/z/zGlobals.hpp" |
29 #include "gc/z/zGranuleMap.inline.hpp" |
30 #include "gc/z/zGranuleMap.inline.hpp" |
30 #include "gc/z/zHeapIterator.hpp" |
31 #include "gc/z/zHeapIterator.hpp" |
31 #include "gc/z/zOop.inline.hpp" |
32 #include "gc/z/zOop.inline.hpp" |
146 const uintptr_t mask = ZGranuleSize - 1; |
147 const uintptr_t mask = ZGranuleSize - 1; |
147 return (offset & mask) >> ZObjectAlignmentSmallShift; |
148 return (offset & mask) >> ZObjectAlignmentSmallShift; |
148 } |
149 } |
149 |
150 |
150 ZHeapIteratorBitMap* ZHeapIterator::object_map(oop obj) { |
151 ZHeapIteratorBitMap* ZHeapIterator::object_map(oop obj) { |
151 const uintptr_t addr = ZOop::to_address(obj); |
152 const uintptr_t offset = ZAddress::offset(ZOop::to_address(obj)); |
152 ZHeapIteratorBitMap* map = _visit_map.get(addr); |
153 ZHeapIteratorBitMap* map = _visit_map.get(offset); |
153 if (map == NULL) { |
154 if (map == NULL) { |
154 map = new ZHeapIteratorBitMap(object_index_max()); |
155 map = new ZHeapIteratorBitMap(object_index_max()); |
155 _visit_map.put(addr, map); |
156 _visit_map.put(offset, map); |
156 } |
157 } |
157 |
158 |
158 return map; |
159 return map; |
159 } |
160 } |
160 |
161 |