Merge
authorjprovino
Tue, 15 Dec 2015 16:01:00 +0000
changeset 35170 7afedbda9c36
parent 35167 45801556e636 (current diff)
parent 35169 e75913632d00 (diff)
child 35174 1db5f63bda7c
Merge
--- a/hotspot/src/share/vm/gc/cms/compactibleFreeListSpace.cpp	Thu Dec 10 20:14:00 2015 +0300
+++ b/hotspot/src/share/vm/gc/cms/compactibleFreeListSpace.cpp	Tue Dec 15 16:01:00 2015 +0000
@@ -2511,7 +2511,11 @@
   // Lacking sufficient experience, CMSOldPLABResizeQuicker is disabled by
   // default.
   if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
-    size_t multiple = _num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
+    //
+    // On a 32-bit VM, the denominator can become zero because of integer overflow,
+    // which is why there is a cast to double.
+    //
+    size_t multiple = (size_t) (_num_blocks[word_sz]/(((double)CMSOldPLABToleranceFactor)*CMSOldPLABNumRefills*n_blks));
     n_blks +=  CMSOldPLABReactivityFactor*multiple*n_blks;
     n_blks = MIN2(n_blks, CMSOldPLABMax);
   }