Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/concurrentMark.cpp @ 4735:776173fc2df9
7125516: G1: ~ConcurrentMark() frees incorrectly
Summary: Replaced the code with a ShouldNotReachHere
Reviewed-by: tonyp, jmasa
author | stefank |
---|---|
date | Thu, 29 Dec 2011 07:37:23 +0100 |
parents | 441e946dc1af |
children | 023652e49ac0 |
comparison
equal
deleted
inserted
replaced
4734:20bfb6d15a94 | 4735:776173fc2df9 |
---|---|
724 _active_tasks = 0; | 724 _active_tasks = 0; |
725 clear_concurrent_marking_in_progress(); | 725 clear_concurrent_marking_in_progress(); |
726 } | 726 } |
727 | 727 |
728 ConcurrentMark::~ConcurrentMark() { | 728 ConcurrentMark::~ConcurrentMark() { |
729 for (int i = 0; i < (int) _max_task_num; ++i) { | 729 // The ConcurrentMark instance is never freed. |
730 delete _task_queues->queue(i); | 730 ShouldNotReachHere(); |
731 delete _tasks[i]; | |
732 } | |
733 delete _task_queues; | |
734 FREE_C_HEAP_ARRAY(CMTask*, _max_task_num); | |
735 } | 731 } |
736 | 732 |
737 // This closure is used to mark refs into the g1 generation | 733 // This closure is used to mark refs into the g1 generation |
738 // from external roots in the CMS bit map. | 734 // from external roots in the CMS bit map. |
739 // Called at the first checkpoint. | 735 // Called at the first checkpoint. |