Check changelist as part of checking representational integrity

This commit is contained in:
Nick Mathewson 2012-01-27 14:39:18 -05:00
parent 2c4b5de16a
commit 39b3f38d72

12
evmap.c
View File

@ -581,10 +581,9 @@ event_change_get_fdinfo(struct event_base *base,
return (void*)ptr; return (void*)ptr;
} }
#ifdef DEBUG_CHANGELIST
/** Make sure that the changelist is consistent with the evmap structures. */ /** Make sure that the changelist is consistent with the evmap structures. */
static void static void
event_changelist_check(struct event_base *base) event_changelist_assert_ok(struct event_base *base)
{ {
int i; int i;
struct event_changelist *changelist = &base->changelist; struct event_changelist *changelist = &base->changelist;
@ -612,6 +611,9 @@ event_changelist_check(struct event_base *base)
} }
} }
} }
#ifdef DEBUG_CHANGELIST
#define event_changelist_check(base) event_changelist_assert_ok((base))
#else #else
#define event_changelist_check(base) ((void)0) #define event_changelist_check(base) ((void)0)
#endif #endif
@ -849,6 +851,8 @@ evmap_check_integrity(struct event_base *base)
EVUTIL_ASSERT(nio == 0); EVUTIL_ASSERT(nio == 0);
EVUTIL_ASSERT(nsignals == 0); EVUTIL_ASSERT(nsignals == 0);
/* There is no "EVUTIL_ASSERT(ntimers == 0)": eventqueue is only for /* There is no "EVUTIL_ASSERT(ntimers == 0)": eventqueue is only for
* pending signals and io events. * pending signals and io events. */
*/
if (base->evsel->add == event_changelist_add)
event_changelist_assert_ok(base);
} }