[master] e6755a5 Use the TAKE_OBJ_NOTNULL macro where relevant

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Fri Mar 18 12:24:04 CET 2016


commit e6755a5d2697051773d05b8cc9336c0726ad19ab
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Fri Mar 18 12:02:53 2016 +0100

    Use the TAKE_OBJ_NOTNULL macro where relevant
    
    This patch was created using Coccinelle and the following steps:
    
       $ cat >take.cocci <<EOF
       @@
       expression t, f;
       constant m;
       @@
    
       - AN(f);
       - t = *f;
       - *f = NULL;
       - CHECK_OBJ_NOTNULL(t, m);
       + TAKE_OBJ_NOTNULL(t, f, m);
       EOF
       $ spatch --sp-file take.cocci --dir . --in-place

diff --git a/bin/varnishd/cache/cache_backend_cfg.c b/bin/varnishd/cache/cache_backend_cfg.c
index 21f0782..e413b7b 100644
--- a/bin/varnishd/cache/cache_backend_cfg.c
+++ b/bin/varnishd/cache/cache_backend_cfg.c
@@ -148,10 +148,7 @@ VRT_delete_backend(VRT_CTX, struct director **dp)
 	struct backend *be;
 
 	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
-	AN(dp);
-	d = *dp;
-	*dp = NULL;
-	CHECK_OBJ_NOTNULL(d, DIRECTOR_MAGIC);
+	TAKE_OBJ_NOTNULL(d, dp, DIRECTOR_MAGIC);
 	CAST_OBJ_NOTNULL(be, d->priv, BACKEND_MAGIC);
 	Lck_Lock(&be->mtx);
 	be->admin_health = vbe_ah_deleted;
diff --git a/bin/varnishd/cache/cache_backend_tcp.c b/bin/varnishd/cache/cache_backend_tcp.c
index b43bf3c..fdabe6f 100644
--- a/bin/varnishd/cache/cache_backend_tcp.c
+++ b/bin/varnishd/cache/cache_backend_tcp.c
@@ -178,10 +178,7 @@ VBT_Rel(struct tcp_pool **tpp)
 	struct tcp_pool *tp;
 	struct vbc *vbc, *vbc2;
 
-	AN(tpp);
-	tp = *tpp;
-	*tpp = NULL;
-	CHECK_OBJ_NOTNULL(tp, TCP_POOL_MAGIC);
+	TAKE_OBJ_NOTNULL(tp, tpp, TCP_POOL_MAGIC);
 	assert(tp->refcnt > 0);
 	if (--tp->refcnt > 0)
 		return;
diff --git a/bin/varnishd/cache/cache_busyobj.c b/bin/varnishd/cache/cache_busyobj.c
index c3fa436..cab4dd8 100644
--- a/bin/varnishd/cache/cache_busyobj.c
+++ b/bin/varnishd/cache/cache_busyobj.c
@@ -76,10 +76,7 @@ vbo_Free(struct busyobj **bop)
 {
 	struct busyobj *bo;
 
-	AN(bop);
-	bo = *bop;
-	*bop = NULL;
-	CHECK_OBJ_NOTNULL(bo, BUSYOBJ_MAGIC);
+	TAKE_OBJ_NOTNULL(bo, bop, BUSYOBJ_MAGIC);
 	AZ(bo->htc);
 	MPL_Free(vbopool, bo);
 }
@@ -151,10 +148,7 @@ VBO_ReleaseBusyObj(struct worker *wrk, struct busyobj **pbo)
 	struct busyobj *bo;
 
 	CHECK_OBJ_ORNULL(wrk, WORKER_MAGIC);
-	AN(pbo);
-	bo = *pbo;
-	*pbo = NULL;
-	CHECK_OBJ_NOTNULL(bo, BUSYOBJ_MAGIC);
+	TAKE_OBJ_NOTNULL(bo, pbo, BUSYOBJ_MAGIC);
 	CHECK_OBJ_ORNULL(bo->fetch_objcore, OBJCORE_MAGIC);
 
 	AZ(bo->htc);
diff --git a/bin/varnishd/cache/cache_hash.c b/bin/varnishd/cache/cache_hash.c
index 21088f7..fc5c368 100644
--- a/bin/varnishd/cache/cache_hash.c
+++ b/bin/varnishd/cache/cache_hash.c
@@ -860,10 +860,7 @@ HSH_DerefObjHead(struct worker *wrk, struct objhead **poh)
 	int r;
 
 	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
-	AN(poh);
-	oh = *poh;
-	*poh = NULL;
-	CHECK_OBJ_NOTNULL(oh, OBJHEAD_MAGIC);
+	TAKE_OBJ_NOTNULL(oh, poh, OBJHEAD_MAGIC);
 
 	if (oh == private_oh) {
 		assert(VTAILQ_EMPTY(&oh->waitinglist));
diff --git a/bin/varnishd/cache/cache_mempool.c b/bin/varnishd/cache/cache_mempool.c
index f4c1c30..85ca62c 100644
--- a/bin/varnishd/cache/cache_mempool.c
+++ b/bin/varnishd/cache/cache_mempool.c
@@ -253,10 +253,7 @@ MPL_Destroy(struct mempool **mpp)
 {
 	struct mempool *mpl;
 
-	AN(mpp);
-	mpl = *mpp;
-	*mpp = NULL;
-	CHECK_OBJ_NOTNULL(mpl, MEMPOOL_MAGIC);
+	TAKE_OBJ_NOTNULL(mpl, mpp, MEMPOOL_MAGIC);
 	Lck_Lock(&mpl->mtx);
 	AZ(mpl->live);
 	mpl->self_destruct = 1;
diff --git a/bin/varnishd/cache/cache_obj.c b/bin/varnishd/cache/cache_obj.c
index 46fd0fc..344525d 100644
--- a/bin/varnishd/cache/cache_obj.c
+++ b/bin/varnishd/cache/cache_obj.c
@@ -161,10 +161,7 @@ ObjDestroy(struct worker *wrk, struct objcore **p)
 	struct objcore *oc;
 
 	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
-	AN(p);
-	oc = *p;
-	*p = NULL;
-	CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
+	TAKE_OBJ_NOTNULL(oc, p, OBJCORE_MAGIC);
 	if (oc->boc != NULL)
 		obj_deleteboc(&oc->boc);
 	FREE_OBJ(oc);
diff --git a/bin/varnishd/cache/cache_vrt_vmod.c b/bin/varnishd/cache/cache_vrt_vmod.c
index 50e2d61..b18ae1d 100644
--- a/bin/varnishd/cache/cache_vrt_vmod.c
+++ b/bin/varnishd/cache/cache_vrt_vmod.c
@@ -149,10 +149,7 @@ VRT_Vmod_Fini(struct vmod **hdl)
 
 	ASSERT_CLI();
 
-	AN(hdl);
-	v = *hdl;
-	*hdl = NULL;
-	CHECK_OBJ_NOTNULL(v, VMOD_MAGIC);
+	TAKE_OBJ_NOTNULL(v, hdl, VMOD_MAGIC);
 
 #ifndef DONT_DLCLOSE_VMODS
 	/*
diff --git a/bin/varnishd/common/common_vsm.c b/bin/varnishd/common/common_vsm.c
index 0dda841..49ba1b6 100644
--- a/bin/varnishd/common/common_vsm.c
+++ b/bin/varnishd/common/common_vsm.c
@@ -337,11 +337,7 @@ VSM_common_delete(struct vsm_sc **scp)
 	struct vsm_range *vr, *vr2;
 	struct vsm_sc *sc;
 
-	AN(scp);
-	sc =*scp;
-	*scp = NULL;
-
-	CHECK_OBJ_NOTNULL(sc, VSM_SC_MAGIC);
+	TAKE_OBJ_NOTNULL(sc, scp, VSM_SC_MAGIC);
 	VTAILQ_FOREACH_SAFE(vr, &sc->r_free, list, vr2)
 		FREE_OBJ(vr);
 	VTAILQ_FOREACH_SAFE(vr, &sc->r_used, list, vr2)
diff --git a/bin/varnishd/storage/storage_lru.c b/bin/varnishd/storage/storage_lru.c
index 785e3e1..9ca5380 100644
--- a/bin/varnishd/storage/storage_lru.c
+++ b/bin/varnishd/storage/storage_lru.c
@@ -71,10 +71,7 @@ LRU_Free(struct lru **pp)
 {
 	struct lru *lru;
 
-	AN(pp);
-	lru = *pp;
-	*pp = NULL;
-	CHECK_OBJ_NOTNULL(lru, LRU_MAGIC);
+	TAKE_OBJ_NOTNULL(lru, pp, LRU_MAGIC);
 	Lck_Lock(&lru->mtx);
 	AN(VTAILQ_EMPTY(&lru->lru_head));
 	Lck_Unlock(&lru->mtx);
diff --git a/bin/varnishd/waiter/cache_waiter.c b/bin/varnishd/waiter/cache_waiter.c
index b1d0801..80def71 100644
--- a/bin/varnishd/waiter/cache_waiter.c
+++ b/bin/varnishd/waiter/cache_waiter.c
@@ -178,10 +178,7 @@ Waiter_Destroy(struct waiter **wp)
 {
 	struct waiter *w;
 
-	AN(wp);
-	w = *wp;
-	*wp = NULL;
-	CHECK_OBJ_NOTNULL(w, WAITER_MAGIC);
+	TAKE_OBJ_NOTNULL(w, wp, WAITER_MAGIC);
 
 	AZ(binheap_root(w->heap));
 	AN(w->impl->fini);
diff --git a/lib/libvarnishapi/vsl_dispatch.c b/lib/libvarnishapi/vsl_dispatch.c
index bbcd7cc..16a575f 100644
--- a/lib/libvarnishapi/vsl_dispatch.c
+++ b/lib/libvarnishapi/vsl_dispatch.c
@@ -526,11 +526,7 @@ vtx_retire(struct VSLQ *vslq, struct vtx **pvtx)
 	struct chunk *chunk;
 
 	AN(vslq);
-	AN(pvtx);
-
-	vtx = *pvtx;
-	*pvtx = NULL;
-	CHECK_OBJ_NOTNULL(vtx, VTX_MAGIC);
+	TAKE_OBJ_NOTNULL(vtx, pvtx, VTX_MAGIC);
 
 	AN(vtx->flags & VTX_F_COMPLETE);
 	AN(vtx->flags & VTX_F_READY);
@@ -1109,10 +1105,7 @@ VSLQ_Delete(struct VSLQ **pvslq)
 	struct VSLQ *vslq;
 	struct vtx *vtx;
 
-	AN(pvslq);
-	vslq = *pvslq;
-	*pvslq = NULL;
-	CHECK_OBJ_NOTNULL(vslq, VSLQ_MAGIC);
+	TAKE_OBJ_NOTNULL(vslq, pvslq, VSLQ_MAGIC);
 
 	(void)VSLQ_Flush(vslq, NULL, NULL);
 	AZ(vslq->n_outstanding);
diff --git a/lib/libvarnishapi/vsl_query.c b/lib/libvarnishapi/vsl_query.c
index b2e0860..02c9cf3 100644
--- a/lib/libvarnishapi/vsl_query.c
+++ b/lib/libvarnishapi/vsl_query.c
@@ -332,10 +332,7 @@ vslq_deletequery(struct vslq_query **pquery)
 {
 	struct vslq_query *query;
 
-	AN(pquery);
-	query = *pquery;
-	*pquery = NULL;
-	CHECK_OBJ_NOTNULL(query, VSLQ_QUERY_MAGIC);
+	TAKE_OBJ_NOTNULL(query, pquery, VSLQ_QUERY_MAGIC);
 
 	AN(query->vex);
 	vex_Free(&query->vex);
diff --git a/lib/libvarnishapi/vxp.c b/lib/libvarnishapi/vxp.c
index db91b30..558a99d 100644
--- a/lib/libvarnishapi/vxp.c
+++ b/lib/libvarnishapi/vxp.c
@@ -183,10 +183,7 @@ vxp_Delete(struct vxp **pvxp)
 	struct vxp *vxp;
 	struct membit *mb;
 
-	AN(pvxp);
-	vxp = *pvxp;
-	*pvxp = NULL;
-	CHECK_OBJ_NOTNULL(vxp, VXP_MAGIC);
+	TAKE_OBJ_NOTNULL(vxp, pvxp, VXP_MAGIC);
 
 	while (!VTAILQ_EMPTY(&vxp->membits)) {
 		mb = VTAILQ_FIRST(&vxp->membits);
diff --git a/lib/libvmod_directors/vdir.c b/lib/libvmod_directors/vdir.c
index 15dd56a..c267104 100644
--- a/lib/libvmod_directors/vdir.c
+++ b/lib/libvmod_directors/vdir.c
@@ -81,11 +81,7 @@ vdir_delete(struct vdir **vdp)
 {
 	struct vdir *vd;
 
-	AN(vdp);
-	vd = *vdp;
-	*vdp = NULL;
-
-	CHECK_OBJ_NOTNULL(vd, VDIR_MAGIC);
+	TAKE_OBJ_NOTNULL(vd, vdp, VDIR_MAGIC);
 
 	free(vd->backend);
 	free(vd->weight);



More information about the varnish-commit mailing list