< prev index next >

src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp

Print this page




  31 #include "gc/shared/cardTable.hpp"
  32 #include "gc/shared/space.hpp"
  33 #include "logging/log.hpp"
  34 #include "memory/binaryTreeDictionary.hpp"
  35 #include "memory/freeList.hpp"
  36 
  37 // Classes in support of keeping track of promotions into a non-Contiguous
  38 // space, in this case a CompactibleFreeListSpace.
  39 
  40 // Forward declarations
  41 class CMSCollector;
  42 class CompactibleFreeListSpace;
  43 class ConcurrentMarkSweepGeneration;
  44 class BlkClosure;
  45 class BlkClosureCareful;
  46 class FreeChunk;
  47 class UpwardsObjectClosure;
  48 class ObjectClosureCareful;
  49 class Klass;
  50 
  51 class LinearAllocBlock VALUE_OBJ_CLASS_SPEC {
  52  public:
  53   LinearAllocBlock() : _ptr(0), _word_size(0), _refillSize(0),
  54     _allocation_size_limit(0) {}
  55   void set(HeapWord* ptr, size_t word_size, size_t refill_size,
  56     size_t allocation_size_limit) {
  57     _ptr = ptr;
  58     _word_size = word_size;
  59     _refillSize = refill_size;
  60     _allocation_size_limit = allocation_size_limit;
  61   }
  62   HeapWord* _ptr;
  63   size_t    _word_size;
  64   size_t    _refillSize;
  65   size_t    _allocation_size_limit;  // Largest size that will be allocated
  66 
  67   void print_on(outputStream* st) const;
  68 };
  69 
  70 // Concrete subclass of CompactibleSpace that implements
  71 // a free list space, such as used in the concurrent mark sweep




  31 #include "gc/shared/cardTable.hpp"
  32 #include "gc/shared/space.hpp"
  33 #include "logging/log.hpp"
  34 #include "memory/binaryTreeDictionary.hpp"
  35 #include "memory/freeList.hpp"
  36 
  37 // Classes in support of keeping track of promotions into a non-Contiguous
  38 // space, in this case a CompactibleFreeListSpace.
  39 
  40 // Forward declarations
  41 class CMSCollector;
  42 class CompactibleFreeListSpace;
  43 class ConcurrentMarkSweepGeneration;
  44 class BlkClosure;
  45 class BlkClosureCareful;
  46 class FreeChunk;
  47 class UpwardsObjectClosure;
  48 class ObjectClosureCareful;
  49 class Klass;
  50 
  51 class LinearAllocBlock {
  52  public:
  53   LinearAllocBlock() : _ptr(0), _word_size(0), _refillSize(0),
  54     _allocation_size_limit(0) {}
  55   void set(HeapWord* ptr, size_t word_size, size_t refill_size,
  56     size_t allocation_size_limit) {
  57     _ptr = ptr;
  58     _word_size = word_size;
  59     _refillSize = refill_size;
  60     _allocation_size_limit = allocation_size_limit;
  61   }
  62   HeapWord* _ptr;
  63   size_t    _word_size;
  64   size_t    _refillSize;
  65   size_t    _allocation_size_limit;  // Largest size that will be allocated
  66 
  67   void print_on(outputStream* st) const;
  68 };
  69 
  70 // Concrete subclass of CompactibleSpace that implements
  71 // a free list space, such as used in the concurrent mark sweep


< prev index next >