commit - 04ffa662adc8ee1b45fcd633c519bbe21f78f93a
commit + edaadfbc3f3aa875d02f68b858ac44b128898f79
blob - 012a52f33f76a50f7775584c494436504130e5bf
blob + 9ff9a52fad425da5c38844c0c0e01ed19bd459b8
--- ev.c
+++ ev.c
static inline void
cancel_timer(size_t i)
{
- /* special case: it's the last one */
- if (i == base->ntimers - 1) {
- base->ntimers--;
- memset(&base->timers[base->ntimers], 0, sizeof(*base->timers));
- return;
- }
-
- memcpy(&base->timers[i], &base->timers[base->ntimers - 1],
- sizeof(*base->timers));
base->ntimers--;
-
+ if (i != base->ntimers)
+ memcpy(&base->timers[i], &base->timers[base->ntimers],
+ sizeof(*base->timers));
bubbledown(i);
}
}
base->reserve_till--;
-
if (i != base->reserve_till)
- memmove(&base->timers[i], &base->timers[i + 1],
- (base->reserve_till - i) * sizeof(*base->timers));
-
+ memcpy(&base->timers[i], &base->timers[base->reserve_till],
+ sizeof(*base->timers));
return (0);
}