Mercurial > hg > truffle
comparison src/share/vm/memory/blockOffsetTable.hpp @ 6725:da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author | coleenp |
---|---|
date | Sat, 01 Sep 2012 13:25:18 -0400 |
parents | d2a62e0f25eb |
children | 859cd1a76f8a |
comparison
equal
deleted
inserted
replaced
6724:36d1d483d5d6 | 6725:da91efe96a93 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
40 // - BlockOffsetArrayNonContigSpace | 40 // - BlockOffsetArrayNonContigSpace |
41 // - BlockOffsetArrayContigSpace | 41 // - BlockOffsetArrayContigSpace |
42 // | 42 // |
43 | 43 |
44 class ContiguousSpace; | 44 class ContiguousSpace; |
45 class SerializeOopClosure; | |
46 | 45 |
47 ////////////////////////////////////////////////////////////////////////// | 46 ////////////////////////////////////////////////////////////////////////// |
48 // The BlockOffsetTable "interface" | 47 // The BlockOffsetTable "interface" |
49 ////////////////////////////////////////////////////////////////////////// | 48 ////////////////////////////////////////////////////////////////////////// |
50 class BlockOffsetTable VALUE_OBJ_CLASS_SPEC { | 49 class BlockOffsetTable VALUE_OBJ_CLASS_SPEC { |
256 // Return the address "p" incremented by the size of | 255 // Return the address "p" incremented by the size of |
257 // a region. This method does not align the address | 256 // a region. This method does not align the address |
258 // returned to the start of a region. It is a simple | 257 // returned to the start of a region. It is a simple |
259 // primitive. | 258 // primitive. |
260 HeapWord* inc_by_region_size(HeapWord* p) const { return p + N_words; } | 259 HeapWord* inc_by_region_size(HeapWord* p) const { return p + N_words; } |
261 | |
262 // Shared space support | |
263 void serialize(SerializeOopClosure* soc, HeapWord* start, HeapWord* end); | |
264 }; | 260 }; |
265 | 261 |
266 ////////////////////////////////////////////////////////////////////////// | 262 ////////////////////////////////////////////////////////////////////////// |
267 // The BlockOffsetArray whose subtypes use the BlockOffsetSharedArray. | 263 // The BlockOffsetArray whose subtypes use the BlockOffsetSharedArray. |
268 ////////////////////////////////////////////////////////////////////////// | 264 ////////////////////////////////////////////////////////////////////////// |
561 alloc_block(blk, blk + size); | 557 alloc_block(blk, blk + size); |
562 } | 558 } |
563 | 559 |
564 HeapWord* block_start_unsafe(const void* addr) const; | 560 HeapWord* block_start_unsafe(const void* addr) const; |
565 | 561 |
566 void serialize(SerializeOopClosure* soc); | |
567 | |
568 // Debugging support | 562 // Debugging support |
569 virtual size_t last_active_index() const; | 563 virtual size_t last_active_index() const; |
570 }; | 564 }; |
571 | 565 |
572 #endif // SHARE_VM_MEMORY_BLOCKOFFSETTABLE_HPP | 566 #endif // SHARE_VM_MEMORY_BLOCKOFFSETTABLE_HPP |