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
|