if (max < min)
throw PrngException("Invalid range (max < min)");
- u32 bound = max - min + 1;
+ // We have to cast to s64 because otherwise this could overflow,
+ // and signed overflow is undefined behavior.
+ u32 bound = (s64)max - (s64)min + 1;
return range(bound) + min;
}
if (persistence_map) {
if (!persist_buf)
persist_buf = new float[bufsize];
- memset(persist_buf, 1.0f, sizeof(float) * bufsize);
+ for (size_t i = 0; i != bufsize; i++)
+ persist_buf[i] = 1.0;
}
for (size_t oct = 0; oct < np.octaves; oct++) {
if (persistence_map) {
if (!persist_buf)
persist_buf = new float[bufsize];
-
- memset(persist_buf, 1.0f, sizeof(float) * bufsize);
+ for (size_t i = 0; i != bufsize; i++)
+ persist_buf[i] = 1.0;
}
for (size_t oct = 0; oct < np.octaves; oct++) {