diff --git a/include/extern.h b/include/extern.h index 0b1003905..36ba1f9bd 100644 --- a/include/extern.h +++ b/include/extern.h @@ -3503,8 +3503,8 @@ extern int weapon_type(struct obj *) NO_NONNULLS; extern int uwep_skill_type(void); /* find_roll_to_hit() calls weapon_hit_bonus() with a NULL argument, preventing NONNULLARG1 */ -extern int weapon_hit_bonus(struct obj *); -extern int weapon_dam_bonus(struct obj *); +extern int weapon_hit_bonus(struct obj *) NO_NONNULLS; +extern int weapon_dam_bonus(struct obj *) NO_NONNULLS; extern void skill_init(const struct def_skill *) NONNULLARG1; extern void setmnotwielded(struct monst *, struct obj *) NONNULLARG1; @@ -3663,9 +3663,10 @@ extern struct obj *which_armor(struct monst *, long) NONNULLARG1; extern void mon_break_armor(struct monst *, boolean) NONNULLARG1; extern void bypass_obj(struct obj *) NONNULLARG1; extern void clear_bypasses(void); -extern void bypass_objlist(struct obj *, boolean) NONNULLARG1; -extern struct obj *nxt_unbypassed_obj(struct obj *) NONNULLARG1; -extern struct obj *nxt_unbypassed_loot(Loot *, struct obj *) NONNULLARG12; +/* callers don't check gi.invent before passing to bypass_objlist */ +extern void bypass_objlist(struct obj *, boolean) NO_NONNULLS; +extern struct obj *nxt_unbypassed_obj(struct obj *) NO_NONNULLS; +extern struct obj *nxt_unbypassed_loot(Loot *, struct obj *) NONNULLARG1; extern int racial_exception(struct monst *, struct obj *) NONNULLARG12; extern void extract_from_minvent(struct monst *, struct obj *, boolean, boolean) NONNULLARG12; diff --git a/src/worn.c b/src/worn.c index 4e5fadf99..4b9507ced 100644 --- a/src/worn.c +++ b/src/worn.c @@ -892,13 +892,11 @@ bypass_objlist( struct obj *objchain, boolean on) /* TRUE => set, FALSE => clear */ { - struct obj *objchain2 = objchain; /* allow objchain arg1 to be nonnull */ - - if (on && objchain2) + if (on && objchain) gc.context.bypasses = TRUE; - while (objchain2) { - objchain2->bypass = on ? 1 : 0; - objchain2 = objchain2->nobj; + while (objchain) { + objchain->bypass = on ? 1 : 0; + objchain = objchain->nobj; } } @@ -907,16 +905,14 @@ bypass_objlist( struct obj * nxt_unbypassed_obj(struct obj *objchain) { - struct obj *objchain2 = objchain; /* allow objchain arg1 to be nonnull */ - - while (objchain2) { - if (!objchain2->bypass) { - bypass_obj(objchain2); + while (objchain) { + if (!objchain->bypass) { + bypass_obj(objchain); break; } - objchain2 = objchain2->nobj; + objchain = objchain->nobj; } - return objchain2; + return objchain; } /* like nxt_unbypassed_obj() but operates on sortloot_item array rather