1.1 --- a/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp Mon Jul 21 09:40:19 2014 +0200 1.2 +++ b/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp Mon Jul 21 09:40:19 2014 +0200 1.3 @@ -33,8 +33,10 @@ 1.4 1.5 ConcurrentG1RefineThread:: 1.6 ConcurrentG1RefineThread(ConcurrentG1Refine* cg1r, ConcurrentG1RefineThread *next, 1.7 + CardTableEntryClosure* refine_closure, 1.8 uint worker_id_offset, uint worker_id) : 1.9 ConcurrentGCThread(), 1.10 + _refine_closure(refine_closure), 1.11 _worker_id_offset(worker_id_offset), 1.12 _worker_id(worker_id), 1.13 _active(false), 1.14 @@ -204,7 +206,7 @@ 1.15 if (_next != NULL && !_next->is_active() && curr_buffer_num > _next->_threshold) { 1.16 _next->activate(); 1.17 } 1.18 - } while (dcqs.apply_closure_to_completed_buffer(_worker_id + _worker_id_offset, cg1r()->green_zone())); 1.19 + } while (dcqs.apply_closure_to_completed_buffer(_refine_closure, _worker_id + _worker_id_offset, cg1r()->green_zone())); 1.20 1.21 // We can exit the loop above while being active if there was a yield request. 1.22 if (is_active()) {