Commit Diff


commit - 39b13ff711838acc339b6d915caabdc63e9b81fb
commit + eae77727b91ee9f0c2dc02efb013093b6dadd387
blob - 77b8e9236e97495ede9710eb5ab0d922a445ad8d
blob + 90134a3d3e22fe68c2682313af3261d7b079d628
--- hist.c
+++ hist.c
@@ -35,9 +35,17 @@ hist_clear(struct histhead *head)
 void
 hist_clear_forward(struct histhead *head, struct hist *h)
 {
+	struct hist *i;
+
 	if (h == NULL)
 		return;
-	hist_clear_forward(head, TAILQ_NEXT(h, entries));
+
+	while ((i = TAILQ_NEXT(h, entries)) != NULL) {
+		TAILQ_REMOVE(&head->head, i, entries);
+		free(i);
+		head->len--;
+	}
+
 	TAILQ_REMOVE(&head->head, h, entries);
 	free(h);
 	head->len--;