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:
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user