< prev index next >
src/share/vm/gc/g1/heapRegion.hpp
Print this page
rev 12238 : [mq]: is_old_or_humongous
rev 12239 : [mq]: trim_barrier
rev 12240 : [mq]: filler_comments
@@ -49,12 +49,13 @@
// be set beyond the end of the region. For humongous objects,
// the first region is a StartsHumongous region. If the humongous
// object is larger than a heap region, the following regions will
// be of type ContinuesHumongous. In this case the top() of the
// StartHumongous region and all ContinuesHumongous regions except
-// the last will point to their own end. For the last ContinuesHumongous
-// region, top() will equal the object's top.
+// the last will point to their own end. The last ContinuesHumongous
+// region may have top() equal the end of object if there isn't
+// room for filler objects to pad out to the end of the region.
class G1CollectedHeap;
class HeapRegionRemSet;
class HeapRegionRemSetIterator;
class HeapRegion;
@@ -431,10 +432,12 @@
bool is_starts_humongous() const { return _type.is_starts_humongous(); }
bool is_continues_humongous() const { return _type.is_continues_humongous(); }
bool is_old() const { return _type.is_old(); }
+ bool is_old_or_humongous() const { return _type.is_old_or_humongous(); }
+
// A pinned region contains objects which are not moved by garbage collections.
// Humongous regions and archive regions are pinned.
bool is_pinned() const { return _type.is_pinned(); }
// An archive region is a pinned region, also tagged as old, which
@@ -651,21 +654,23 @@
if (b) {
_next_marked_bytes = 0;
}
}
- // Iterate over the card in the card designated by card_ptr,
- // applying cl to all references in the region.
- // mr: the memory region covered by the card.
- // card_ptr: if we decide that the card is not young and we iterate
- // over it, we'll clean the card before we start the iteration.
- // Returns true if the card was successfully processed, false if an
- // unparsable part of the heap was encountered, which should only
- // happen when invoked concurrently with the mutator.
+ // Iterate over the objects overlapping the card designated by
+ // card_ptr, applying cl to all references in the region. This
+ // is a helper for G1RemSet::refine_card, and is tightly coupled
+ // with it.
+ // mr: the memory region covered by the card, trimmed to the
+ // allocated space for this region. Must not be empty.
+ // This region must be old or humongous.
+ // Returns true if the designated objects were successfully
+ // processed, false if an unparsable part of the heap was
+ // encountered; that only happens when invoked concurrently with the
+ // mutator.
bool oops_on_card_seq_iterate_careful(MemRegion mr,
- FilterOutOfRegionClosure* cl,
- jbyte* card_ptr);
+ FilterOutOfRegionClosure* cl);
size_t recorded_rs_length() const { return _recorded_rs_length; }
double predicted_elapsed_time_ms() const { return _predicted_elapsed_time_ms; }
size_t predicted_bytes_to_copy() const { return _predicted_bytes_to_copy; }
< prev index next >