8152180: SIGFPE in CMSCollector::preclean with big CMSScheduleRemarkSamplingRatio

Rephrased the calculation routine to avoid an overflow for CMSScheduleRemarkSamplingRatio

Reviewed-by: jwilhelm, drwhite
This commit is contained in:
Sangheon Kim 2016-04-07 15:33:25 -07:00
parent c66cf8bde7
commit 10c7cac93e

View file

@ -3598,7 +3598,7 @@ void CMSCollector::preclean() {
size_t capacity = get_eden_capacity();
// Don't start sampling unless we will get sufficiently
// many samples.
if (used < (capacity/(CMSScheduleRemarkSamplingRatio * 100)
if (used < (((capacity / CMSScheduleRemarkSamplingRatio) / 100)
* CMSScheduleRemarkEdenPenetration)) {
_start_sampling = true;
} else {