aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Jackson <ian.jackson@eu.citrix.com>2013-10-11 12:10:45 +0100
committerIan Jackson <Ian.Jackson@eu.citrix.com>2013-10-11 15:50:21 +0100
commit6ed09e37722f601661fff42f80279a41773c574e (patch)
tree622e5eff9a96bba5e970bfdd592979cbb4c516b2
parent6fd9b0361e2eb5a7f12bdd5cbf7e42c0d1937d26 (diff)
downloadxen-6ed09e37722f601661fff42f80279a41773c574e.tar.gz
xen-6ed09e37722f601661fff42f80279a41773c574e.tar.bz2
xen-6ed09e37722f601661fff42f80279a41773c574e.zip
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 <Ian.Jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
-rw-r--r--tools/libxl/libxl_event.c6
-rw-r--r--tools/libxl/libxl_internal.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/tools/libxl/libxl_event.c b/tools/libxl/libxl_event.c
index 6f033dd4b3..a5c52bc510 100644
--- a/tools/libxl/libxl_event.c
+++ b/tools/libxl/libxl_event.c
@@ -1347,6 +1347,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);
}
@@ -1476,8 +1477,7 @@ int libxl_event_wait(libxl_ctx *ctx, libxl_event **event_r,
}
out:
- if (poller)
- libxl__poller_put(ctx, poller);
+ libxl__poller_put(ctx, poller);
CTX_UNLOCK;
EGC_FREE;
@@ -1540,7 +1540,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 4e1505503c..165dc00287 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. */