Fix/document possible division by zero in ConvertScaleParam

This commit is contained in:
Sierraffinity 2021-01-04 16:26:28 -08:00
parent b88922daea
commit 67a656a4df
2 changed files with 12 additions and 2 deletions

View File

@ -1319,8 +1319,18 @@ void ApplyAffineAnimFrameRelativeAndUpdateMatrix(u8 matrixNum, struct AffineAnim
s16 ConvertScaleParam(s16 scale)
{
s16 ret;
s32 val = 0x10000;
return val / scale;
// UB: possible division by zero
#ifdef UBFIX
if (scale != 0)
ret = val / scale;
else
ret = 0;
#else
ret = val / scale;
#endif //UBFIX
return ret;
}
void GetAffineAnimFrame(u8 matrixNum, struct Sprite *sprite, struct AffineAnimFrameCmd *frameCmd)

View File

@ -3042,7 +3042,7 @@ static void SpriteCB_PokedexListMonSprite(struct Sprite *sprite)
if (gSineTable[sprite->data[5] + 64] != 0)
var = 0x10000 / gSineTable[sprite->data[5] + 64];
else
var = 0xFFFF;
var = 0;
#else
var = 0x10000 / gSineTable[sprite->data[5] + 64];
#endif //UBFIX