equal
deleted
inserted
replaced
77 |
77 |
78 const size_t SPARE_EMPTY_BLOCKS = 2; |
78 const size_t SPARE_EMPTY_BLOCKS = 2; |
79 const size_t MIN_ARRAY_SIZE = 14; |
79 const size_t MIN_ARRAY_SIZE = 14; |
80 const size_t GROWTH_FACTOR = 2; |
80 const size_t GROWTH_FACTOR = 2; |
81 const size_t LOW_WATER_FACTOR = 4; |
81 const size_t LOW_WATER_FACTOR = 4; |
82 const size_t ALLOCATIONS_PER_COLLECTION = 4000; |
82 const size_t ALLOCATIONS_PER_COLLECTION = 1000; |
83 |
83 |
84 enum OperationInProgress { NoOperation, Allocation, Collection }; |
84 enum OperationInProgress { NoOperation, Allocation, Collection }; |
85 |
85 |
86 //forward declaration |
86 //forward declaration |
87 static void freeBlock(CollectorBlock* block); |
87 static void freeBlock(CollectorBlock* block); |
100 |
100 |
101 ~CollectorHeap() { |
101 ~CollectorHeap() { |
102 for(int i=0; i<usedBlocks; ++i) { |
102 for(int i=0; i<usedBlocks; ++i) { |
103 freeBlock(blocks[i]); |
103 freeBlock(blocks[i]); |
104 } |
104 } |
|
105 fastFree(blocks); |
105 } |
106 } |
106 }; |
107 }; |
107 |
108 |
108 static CollectorHeap heap = { 0, 0, 0, 0, 0, 0, 0, NoOperation }; |
109 static CollectorHeap heap = { 0, 0, 0, 0, 0, 0, 0, NoOperation }; |
109 |
110 |