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