mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-03-28 06:46:21 +01:00
Math: Prevent division by zero in posmod
Fixes #43932. Co-authored-by: David Hoppenbrouwers <david@salt-inc.org> (cherry picked from commit f011d8ca9ca25232fb335eead1c8eeaf5c7f2c54)
This commit is contained in:
parent
e8d3159d6f
commit
f3e1aab267
@ -30,6 +30,7 @@
|
|||||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
|
#include "core/error_macros.h"
|
||||||
#include "core/math/math_defs.h"
|
#include "core/math/math_defs.h"
|
||||||
#include "core/math/random_pcg.h"
|
#include "core/math/random_pcg.h"
|
||||||
#include "core/typedefs.h"
|
#include "core/typedefs.h"
|
||||||
@ -236,6 +237,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static _ALWAYS_INLINE_ int64_t posmod(int64_t p_x, int64_t p_y) {
|
static _ALWAYS_INLINE_ int64_t posmod(int64_t p_x, int64_t p_y) {
|
||||||
|
ERR_FAIL_COND_V_MSG(p_y == 0, 0, "Division by zero in posmod is undefined. Returning 0 as fallback.");
|
||||||
int64_t value = p_x % p_y;
|
int64_t value = p_x % p_y;
|
||||||
if (((value < 0) && (p_y > 0)) || ((value > 0) && (p_y < 0))) {
|
if (((value < 0) && (p_y > 0)) || ((value > 0) && (p_y < 0))) {
|
||||||
value += p_y;
|
value += p_y;
|
||||||
|
Loading…
Reference in New Issue
Block a user