n_waiters++;
waiters = talloc_realloc(NULL, waiters, struct waiter, n_waiters);
+
+ if(!waiters)
+ return NULL;
+
waiter = &waiters[n_waiters - 1];
waiter->fd = fd;
waiter->callback = callback;
waiter->arg = arg;
- return 0;
+ return waiter;
}
void waiter_remove(struct waiter *waiter)
assert(i >= 0 && i < n_waiters);
n_waiters--;
- memmove(&waiters[i], &waiters[i+1], n_waiters - i);
+ memmove(&waiters[i], &waiters[i+1],
+ (n_waiters - i) * sizeof(waiters[0]));
waiters = talloc_realloc(NULL, waiters, struct waiter, n_waiters);
}