--- old/src/hotspot/share/gc/g1/dirtyCardQueue.cpp Wed Nov 8 08:12:25 2017 +++ new/src/hotspot/share/gc/g1/dirtyCardQueue.cpp Wed Nov 8 08:12:25 2017 @@ -320,12 +320,8 @@ clear(); // Since abandon is done only at safepoints, we can safely manipulate // these queues. - { - ThreadsListHandle tlh; - JavaThreadIterator jti(tlh.list()); - for (JavaThread* t = jti.first(); t != NULL; t = jti.next()) { - t->dirty_card_queue().reset(); - } + for (JavaThreadIteratorWithHandle jtiwh; JavaThread *t = jtiwh.next(); ) { + t->dirty_card_queue().reset(); } shared_dirty_card_queue()->reset(); } @@ -343,12 +339,8 @@ int save_max_completed_queue = _max_completed_queue; _max_completed_queue = max_jint; assert(SafepointSynchronize::is_at_safepoint(), "Must be at safepoint."); - { - ThreadsListHandle tlh; - JavaThreadIterator jti(tlh.list()); - for (JavaThread* t = jti.first(); t != NULL; t = jti.next()) { - concatenate_log(t->dirty_card_queue()); - } + for (JavaThreadIteratorWithHandle jtiwh; JavaThread *t = jtiwh.next(); ) { + concatenate_log(t->dirty_card_queue()); } concatenate_log(_shared_dirty_card_queue); // Restore the completed buffer queue limit.