--- a/src/hotspot/share/gc/g1/sparsePRT.cpp Thu Jun 27 03:33:44 2019 +0200
+++ b/src/hotspot/share/gc/g1/sparsePRT.cpp Thu Jun 27 11:48:32 2019 +0200
@@ -275,6 +275,19 @@
return false;
}
+bool RSHashTableBucketIter::has_next(SparsePRTEntry*& entry) {
+ while (_bl_ind == RSHashTable::NullEntry) {
+ if (_tbl_ind == (int)_rsht->capacity() - 1) {
+ return false;
+ }
+ _tbl_ind++;
+ _bl_ind = _rsht->_buckets[_tbl_ind];
+ }
+ entry = _rsht->entry(_bl_ind);
+ _bl_ind = entry->next_index();
+ return true;
+}
+
bool RSHashTable::contains_card(RegionIdx_t region_index, CardIdx_t card_index) const {
SparsePRTEntry* e = get_entry(region_index);
return (e != NULL && e->contains_card(card_index));