From: Ian Jackson Date: Fri, 11 Oct 2013 11:10:45 +0000 (+0100) Subject: libxl: make libxl__poller_put tolerate p==NULL X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=f66f746df7983fac7f63b38b1b6bde11a791f1ed;p=xen.git libxl: make libxl__poller_put tolerate p==NULL This is less fragile, and more in keeping with the usual style of initialising everything to 0 and freeing things unconditionally. Correspondingly, remove the tests at the call sites. Apropos of c1f3f174. No overall functional change. Signed-off-by: Ian Jackson Acked-by: Ian Campbell (cherry picked from commit 6ed09e37722f601661fff42f80279a41773c574e) --- diff --git a/tools/libxl/libxl_event.c b/tools/libxl/libxl_event.c index a614e96c49..1c65029eed 100644 --- a/tools/libxl/libxl_event.c +++ b/tools/libxl/libxl_event.c @@ -1349,6 +1349,7 @@ libxl__poller *libxl__poller_get(libxl_ctx *ctx) void libxl__poller_put(libxl_ctx *ctx, libxl__poller *p) { + if (!p) return; LIBXL_LIST_INSERT_HEAD(&ctx->pollers_idle, p, entry); } @@ -1541,7 +1542,7 @@ void libxl__ao__destroy(libxl_ctx *ctx, libxl__ao *ao) AO_GC; if (!ao) return; LOG(DEBUG,"ao %p: destroy",ao); - if (ao->poller) libxl__poller_put(ctx, ao->poller); + libxl__poller_put(ctx, ao->poller); ao->magic = LIBXL__AO_MAGIC_DESTROYED; libxl__free_all(&ao->gc); free(ao); diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index c5fb07ddfd..311dac5424 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -829,7 +829,7 @@ _hidden void libxl__poller_dispose(libxl__poller *p); * away again afterwards. _get can fail, returning NULL. * ctx must be locked. */ _hidden libxl__poller *libxl__poller_get(libxl_ctx *ctx); -_hidden void libxl__poller_put(libxl_ctx *ctx, libxl__poller *p); +_hidden void libxl__poller_put(libxl_ctx*, libxl__poller *p /* may be NULL */); /* Notifies whoever is polling using p that they should wake up. * ctx must be locked. */