[master] 52c2334 Collapse two loops into one.

Poul-Henning Kamp phk at FreeBSD.org
Wed May 4 10:07:05 CEST 2016


commit 52c23347ae2d595b4591e7bff002647b7cf947c5
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue May 3 20:42:28 2016 +0000

    Collapse two loops into one.

diff --git a/bin/varnishd/storage/storage_simple.c b/bin/varnishd/storage/storage_simple.c
index 075d866..f6b70e1 100644
--- a/bin/varnishd/storage/storage_simple.c
+++ b/bin/varnishd/storage/storage_simple.c
@@ -252,24 +252,19 @@ sml_iterator(struct worker *wrk, struct objcore *oc,
 
 	boc = HSH_RefBoc(oc);
 
-	if (boc == NULL && final) {
-		while (!VTAILQ_EMPTY(&obj->list)) {
-			st = VTAILQ_FIRST(&obj->list);
+	if (boc == NULL) {
+		VTAILQ_FOREACH_SAFE(st, &obj->list, list, checkpoint) {
+			AN(st->len);
 			if (ret == 0 && func(priv, 1, st->ptr, st->len))
 				ret = -1;
-			VTAILQ_REMOVE(&obj->list, st, list);
-			sml_stv_free(stv, st);
+			if (final) {
+				VTAILQ_REMOVE(&obj->list, st, list);
+				sml_stv_free(stv, st);
+			} else if (ret)
+				break;
 		}
 		return (ret);
 	}
-	if (boc == NULL) {
-		VTAILQ_FOREACH(st, &obj->list, list) {
-			AN(st->len);
-			if (func(priv, 0, st->ptr, st->len))
-				return (-1);
-		}
-		return (0);
-	}
 
 	p = NULL;
 	l = 0;



More information about the varnish-commit mailing list