another static analyzer bit - cast_protection()

The code tested u.uswallow and then accessed u.ustuck.  Under normal
circumstances that works fine but it could be a problem if the two
fields got out of synch.  This ought to fix the analyzer complaint
and avoid any trouble with mondata access.
This commit is contained in:
PatR
2023-01-13 23:55:37 -08:00
parent 97a90de172
commit bdaa51a689

View File

@@ -858,11 +858,11 @@ cast_protection(void)
struct permonst *pm = u.ustuck ? u.ustuck->data : 0; struct permonst *pm = u.ustuck ? u.ustuck->data : 0;
rmtyp = levl[u.ux][u.uy].typ; rmtyp = levl[u.ux][u.uy].typ;
atmosphere = u.uswallow atmosphere = (pm && u.uswallow)
? ((pm == &mons[PM_FOG_CLOUD]) ? "mist" ? ((pm == &mons[PM_FOG_CLOUD]) ? "mist"
: is_whirly(u.ustuck->data) ? "maelstrom" : is_whirly(pm) ? "maelstrom"
: enfolds(pm) ? "folds" : enfolds(pm) ? "folds"
: is_animal(u.ustuck->data) ? "maw" : is_animal(pm) ? "maw"
: "ooze") : "ooze")
: (u.uinwater ? hliquid("water") : (u.uinwater ? hliquid("water")
: (rmtyp == CLOUD) ? "cloud" : (rmtyp == CLOUD) ? "cloud"