Explorar el Código

Ensure minimum value for computed parameters is appropriate

Christopher Mullins hace 6 años
padre
commit
ed48b4476b
Se han modificado 1 ficheros con 4 adiciones y 2 borrados
  1. 4 2
      lib/Transitions/Transition.cpp

+ 4 - 2
lib/Transitions/Transition.cpp

@@ -68,7 +68,8 @@ size_t Transition::Builder::getOrComputePeriod() const {
   if (period > 0) {
     return period;
   } else if (duration > 0 && numPeriods > 0) {
-    return floor(duration / static_cast<float>(numPeriods));
+    size_t computed = floor(duration / static_cast<float>(numPeriods));
+    return max(MIN_PERIOD, computed);
   } else {
     return 0;
   }
@@ -88,7 +89,8 @@ size_t Transition::Builder::getOrComputeNumPeriods() const {
   if (numPeriods > 0) {
     return numPeriods;
   } else if (period > 0 && duration > 0) {
-    return ceil(duration / static_cast<float>(period));
+    size_t _numPeriods = ceil(duration / static_cast<float>(period));
+    return max(static_cast<size_t>(1), _numPeriods);
   } else {
     return 0;
   }