From: Mark Andrews Date: Thu, 30 Jan 2020 07:19:11 +0000 (+1100) Subject: delay assignment until after REQUIRE X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b7b62bf0b26e61b42b6e82cac9293b04b341a6fa;p=thirdparty%2Fbind9.git delay assignment until after REQUIRE --- diff --git a/lib/isc/timer.c b/lib/isc/timer.c index f7027f56258..3da13e822d7 100644 --- a/lib/isc/timer.c +++ b/lib/isc/timer.c @@ -239,7 +239,7 @@ isc_timer_create(isc_timermgr_t *manager0, isc_timertype_t type, isc_task_t *task, isc_taskaction_t action, void *arg, isc_timer_t **timerp) { - isc__timermgr_t *manager = (isc__timermgr_t *)manager0; + isc__timermgr_t *manager; isc__timer_t *timer; isc_result_t result; isc_time_t now; @@ -252,7 +252,8 @@ isc_timer_create(isc_timermgr_t *manager0, isc_timertype_t type, * in 'timerp'. */ - REQUIRE(VALID_MANAGER(manager)); + REQUIRE(VALID_MANAGER(manager0)); + manager = (isc__timermgr_t *)manager0; REQUIRE(task != NULL); REQUIRE(action != NULL); if (expires == NULL) @@ -352,7 +353,7 @@ isc_timer_reset(isc_timer_t *timer0, isc_timertype_t type, const isc_time_t *expires, const isc_interval_t *interval, bool purge) { - isc__timer_t *timer = (isc__timer_t *)timer0; + isc__timer_t *timer; isc_time_t now; isc__timermgr_t *manager; isc_result_t result; @@ -363,7 +364,8 @@ isc_timer_reset(isc_timer_t *timer0, isc_timertype_t type, * are purged from its task's event queue. */ - REQUIRE(VALID_TIMER(timer)); + REQUIRE(VALID_TIMER(timer0)); + timer = (isc__timer_t *)timer0; manager = timer->manager; REQUIRE(VALID_MANAGER(manager)); @@ -425,10 +427,11 @@ isc_timer_reset(isc_timer_t *timer0, isc_timertype_t type, isc_timertype_t isc_timer_gettype(isc_timer_t *timer0) { - isc__timer_t *timer = (isc__timer_t *)timer0; + isc__timer_t *timer; isc_timertype_t t; - REQUIRE(VALID_TIMER(timer)); + REQUIRE(VALID_TIMER(timer0)); + timer = (isc__timer_t *)timer0; LOCK(&timer->lock); t = timer->type; @@ -439,7 +442,7 @@ isc_timer_gettype(isc_timer_t *timer0) { isc_result_t isc_timer_touch(isc_timer_t *timer0) { - isc__timer_t *timer = (isc__timer_t *)timer0; + isc__timer_t *timer; isc_result_t result; isc_time_t now; @@ -447,7 +450,9 @@ isc_timer_touch(isc_timer_t *timer0) { * Set the last-touched time of 'timer' to the current time. */ - REQUIRE(VALID_TIMER(timer)); + REQUIRE(VALID_TIMER(timer0)); + timer = (isc__timer_t *)timer0; + isc_result_t result; LOCK(&timer->lock); @@ -470,13 +475,14 @@ isc_timer_touch(isc_timer_t *timer0) { void isc_timer_attach(isc_timer_t *timer0, isc_timer_t **timerp) { - isc__timer_t *timer = (isc__timer_t *)timer0; + isc__timer_t *timer; /* * Attach *timerp to timer. */ - REQUIRE(VALID_TIMER(timer)); + REQUIRE(VALID_TIMER(timer0)); + timer = (isc__timer_t *)timer0; REQUIRE(timerp != NULL && *timerp == NULL); isc_refcount_increment(&timer->references); @@ -707,9 +713,10 @@ isc_timermgr_create(isc_mem_t *mctx, isc_timermgr_t **managerp) { void isc_timermgr_poke(isc_timermgr_t *manager0) { - isc__timermgr_t *manager = (isc__timermgr_t *)manager0; + isc__timermgr_t *manager; - REQUIRE(VALID_MANAGER(manager)); + REQUIRE(VALID_MANAGER(manager0)); + manager = (isc__timermgr_t *)manager0; SIGNAL(&manager->wakeup); }