*/
int fr_timer_disarm(fr_timer_t *ev)
{
- fr_timer_list_t *tl = ev->tl;
+ fr_timer_list_t *tl;
- if (!EVENT_ARMED(ev)) {
+ if (!ev || !EVENT_ARMED(ev)) {
EVENT_DEBUG("Asked to disarm inactive timer %p (noop)", ev);
return 0; /* Noop */
}
+ tl = ev->tl;
+
EVENT_DEBUG("Disarming timer %p", ev);
CHECK_PARENT(ev);
CC_HINT(nonnull(NDEBUG_LOCATION_NONNULL(2), NDEBUG_LOCATION_NONNULL(3), NDEBUG_LOCATION_NONNULL(6)));
#define fr_timer_in(...) _fr_timer_in(NDEBUG_LOCATION_EXP __VA_ARGS__)
-int fr_timer_disarm(fr_timer_t *ev) CC_HINT(nonnull); /* disarms but does not free */
+int fr_timer_disarm(fr_timer_t *ev); /* disarms but does not free */
int fr_timer_delete(fr_timer_t **ev_p) CC_HINT(nonnull); /* disarms AND frees */