equal
deleted
inserted
replaced
163 // want to know where the end of the last "real" object we allocated |
163 // want to know where the end of the last "real" object we allocated |
164 // into the region was and this is what this keeps track. |
164 // into the region was and this is what this keeps track. |
165 HeapWord* _pre_dummy_top; |
165 HeapWord* _pre_dummy_top; |
166 |
166 |
167 public: |
167 public: |
168 // Constructor. If "is_zeroed" is true, the MemRegion "mr" may be |
|
169 // assumed to contain zeros. |
|
170 G1OffsetTableContigSpace(G1BlockOffsetSharedArray* sharedOffsetArray, |
168 G1OffsetTableContigSpace(G1BlockOffsetSharedArray* sharedOffsetArray, |
171 MemRegion mr, bool is_zeroed = false); |
169 MemRegion mr); |
172 |
170 |
173 void set_bottom(HeapWord* value); |
171 void set_bottom(HeapWord* value); |
174 void set_end(HeapWord* value); |
172 void set_end(HeapWord* value); |
175 |
173 |
176 virtual HeapWord* saved_mark_word() const; |
174 virtual HeapWord* saved_mark_word() const; |
187 HeapWord* pre_dummy_top() { |
185 HeapWord* pre_dummy_top() { |
188 return (_pre_dummy_top == NULL) ? top() : _pre_dummy_top; |
186 return (_pre_dummy_top == NULL) ? top() : _pre_dummy_top; |
189 } |
187 } |
190 void reset_pre_dummy_top() { _pre_dummy_top = NULL; } |
188 void reset_pre_dummy_top() { _pre_dummy_top = NULL; } |
191 |
189 |
192 virtual void initialize(MemRegion mr, bool clear_space, bool mangle_space); |
|
193 virtual void clear(bool mangle_space); |
190 virtual void clear(bool mangle_space); |
194 |
191 |
195 HeapWord* block_start(const void* p); |
192 HeapWord* block_start(const void* p); |
196 HeapWord* block_start_const(const void* p) const; |
193 HeapWord* block_start_const(const void* p) const; |
197 |
194 |
338 // The predicted number of bytes to copy that was added to |
335 // The predicted number of bytes to copy that was added to |
339 // the total value for the collection set. |
336 // the total value for the collection set. |
340 size_t _predicted_bytes_to_copy; |
337 size_t _predicted_bytes_to_copy; |
341 |
338 |
342 public: |
339 public: |
343 // If "is_zeroed" is "true", the region "mr" can be assumed to contain zeros. |
|
344 HeapRegion(uint hrs_index, |
340 HeapRegion(uint hrs_index, |
345 G1BlockOffsetSharedArray* sharedOffsetArray, |
341 G1BlockOffsetSharedArray* sharedOffsetArray, |
346 MemRegion mr, bool is_zeroed); |
342 MemRegion mr); |
347 |
343 |
348 static int LogOfHRGrainBytes; |
344 static int LogOfHRGrainBytes; |
349 static int LogOfHRGrainWords; |
345 static int LogOfHRGrainWords; |
350 |
346 |
351 static size_t GrainBytes; |
347 static size_t GrainBytes; |
596 |
592 |
597 // Reset HR stuff to default values. |
593 // Reset HR stuff to default values. |
598 void hr_clear(bool par, bool clear_space); |
594 void hr_clear(bool par, bool clear_space); |
599 void par_clear(); |
595 void par_clear(); |
600 |
596 |
601 void initialize(MemRegion mr, bool clear_space, bool mangle_space); |
|
602 |
|
603 // Get the start of the unmarked area in this region. |
597 // Get the start of the unmarked area in this region. |
604 HeapWord* prev_top_at_mark_start() const { return _prev_top_at_mark_start; } |
598 HeapWord* prev_top_at_mark_start() const { return _prev_top_at_mark_start; } |
605 HeapWord* next_top_at_mark_start() const { return _next_top_at_mark_start; } |
599 HeapWord* next_top_at_mark_start() const { return _next_top_at_mark_start; } |
606 |
600 |
607 // Apply "cl->do_oop" to (the addresses of) all reference fields in objects |
601 // Apply "cl->do_oop" to (the addresses of) all reference fields in objects |