< prev index next >
src/share/vm/memory/space.hpp
Print this page
rev 7209 : [mq]: inccms
@@ -39,23 +39,10 @@
// A space is an abstraction for the "storage units" backing
// up the generation abstraction. It includes specific
// implementations for keeping track of free and used space,
// for iterating over objects and free blocks, etc.
-// Here's the Space hierarchy:
-//
-// - Space -- an abstract base class describing a heap area
-// - CompactibleSpace -- a space supporting compaction
-// - CompactibleFreeListSpace -- (used for CMS generation)
-// - ContiguousSpace -- a compactible space in which all free space
-// is contiguous
-// - EdenSpace -- contiguous space used as nursery
-// - ConcEdenSpace -- contiguous space with a 'soft end safe' allocation
-// - OffsetTableContigSpace -- contiguous space with a block offset array
-// that allows "fast" block_start calls
-// - TenuredSpace -- (used for TenuredGeneration)
-
// Forward decls.
class Space;
class BlockOffsetArray;
class BlockOffsetArrayContigSpace;
class Generation;
@@ -465,12 +452,12 @@
GenSpaceMangler* _mangler;
GenSpaceMangler* mangler() { return _mangler; }
// Allocation helpers (return NULL if full).
- inline HeapWord* allocate_impl(size_t word_size, HeapWord* end_value);
- inline HeapWord* par_allocate_impl(size_t word_size, HeapWord* end_value);
+ inline HeapWord* allocate_impl(size_t word_size);
+ inline HeapWord* par_allocate_impl(size_t word_size);
public:
ContiguousSpace();
~ContiguousSpace();
@@ -683,60 +670,10 @@
HeapWord* boundary) :
Filtering_DCTOC(sp, cl, precision, boundary)
{}
};
-
-// Class EdenSpace describes eden-space in new generation.
-
-class DefNewGeneration;
-
-class EdenSpace : public ContiguousSpace {
- friend class VMStructs;
- private:
- DefNewGeneration* _gen;
-
- // _soft_end is used as a soft limit on allocation. As soft limits are
- // reached, the slow-path allocation code can invoke other actions and then
- // adjust _soft_end up to a new soft limit or to end().
- HeapWord* _soft_end;
-
- public:
- EdenSpace(DefNewGeneration* gen) :
- _gen(gen), _soft_end(NULL) {}
-
- // Get/set just the 'soft' limit.
- HeapWord* soft_end() { return _soft_end; }
- HeapWord** soft_end_addr() { return &_soft_end; }
- void set_soft_end(HeapWord* value) { _soft_end = value; }
-
- // Override.
- void clear(bool mangle_space);
-
- // Set both the 'hard' and 'soft' limits (_end and _soft_end).
- void set_end(HeapWord* value) {
- set_soft_end(value);
- ContiguousSpace::set_end(value);
- }
-
- // Allocation (return NULL if full)
- HeapWord* allocate(size_t word_size);
- HeapWord* par_allocate(size_t word_size);
-};
-
-// Class ConcEdenSpace extends EdenSpace for the sake of safe
-// allocation while soft-end is being modified concurrently
-
-class ConcEdenSpace : public EdenSpace {
- public:
- ConcEdenSpace(DefNewGeneration* gen) : EdenSpace(gen) { }
-
- // Allocation (return NULL if full)
- HeapWord* par_allocate(size_t word_size);
-};
-
-
// A ContigSpace that Supports an efficient "block_start" operation via
// a BlockOffsetArray (whose BlockOffsetSharedArray may be shared with
// other spaces.) This is the abstract base class for old generation
// (tenured) spaces.
< prev index next >