changeset 22389:c1dfbaeef4af

Profile counts should not overflow, otherwise injectBranchProbability triggers assertion
author Stefan Marr <stefan.marr@jku.at>
date Thu, 19 Nov 2015 15:32:26 +0100
parents 9f64eb5ad9c1
children 4e426a6f7990
files truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CountingConditionProfile.java
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CountingConditionProfile.java	Thu Nov 19 09:59:05 2015 +0100
+++ b/truffle/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CountingConditionProfile.java	Thu Nov 19 15:32:26 2015 +0100
@@ -52,14 +52,18 @@
                 CompilerDirectives.transferToInterpreterAndInvalidate();
             }
             if (CompilerDirectives.inInterpreter()) {
-                trueCount++;
+                if (trueCount < Integer.MAX_VALUE) {
+                    trueCount++;
+                }
             }
         } else {
             if (falseCount == 0) {
                 CompilerDirectives.transferToInterpreterAndInvalidate();
             }
             if (CompilerDirectives.inInterpreter()) {
-                falseCount++;
+                if (falseCount < Integer.MAX_VALUE) {
+                    falseCount++;
+                }
             }
         }
         return CompilerDirectives.injectBranchProbability((double) trueCount / (double) (trueCount + falseCount), value);