# HG changeset patch # User stefank # Date 1325140643 -3600 # Node ID 776173fc2df94d52740537865cb320555860b280 # Parent 20bfb6d15a94d942ca00e71af80172a77ae54186 7125516: G1: ~ConcurrentMark() frees incorrectly Summary: Replaced the code with a ShouldNotReachHere Reviewed-by: tonyp, jmasa diff -r 20bfb6d15a94 -r 776173fc2df9 src/share/vm/gc_implementation/g1/concurrentMark.cpp --- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Dec 27 16:43:49 2011 -0800 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp Thu Dec 29 07:37:23 2011 +0100 @@ -726,12 +726,8 @@ } ConcurrentMark::~ConcurrentMark() { - for (int i = 0; i < (int) _max_task_num; ++i) { - delete _task_queues->queue(i); - delete _tasks[i]; - } - delete _task_queues; - FREE_C_HEAP_ARRAY(CMTask*, _max_task_num); + // The ConcurrentMark instance is never freed. + ShouldNotReachHere(); } // This closure is used to mark refs into the g1 generation