RFR: Protect risky conversion in ShenandoahHeap::millis_since_last_gc
Aleksey Shipilev
shade at redhat.com
Thu Nov 1 16:49:00 UTC 2018
This was found when building sh/jdk8u on Mac OS X: implicit double -> jlong conversion makes clang
unhappy. The fix goes to sh/jdk and then proliferates with backports:
diff -r 2302522f94c4 src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Thu Nov 01 15:46:15 2018 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Thu Nov 01 17:22:43 2018 +0100
@@ -1147,7 +1147,9 @@
}
jlong ShenandoahHeap::millis_since_last_gc() {
- return heuristics()->time_since_last_gc() * 1000;
+ double v = heuristics()->time_since_last_gc() * 1000;
+ assert(0 <= v && v <= max_jlong, "value should fit: %f", v);
+ return (jlong)v;
}
void ShenandoahHeap::prepare_for_verify() {
Testing: sh/jdk tier3_gc_shenandoah, sh/jdk8u Mac OS X builds
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list