From fc0f62fc36e06a5332d9c9db1a316b9818022bc9 Mon Sep 17 00:00:00 2001
From: Pompolic <pompolic@special-circumstanc.es>
Date: Mon, 9 Mar 2020 17:02:09 +0100
Subject: [PATCH] Fix assert fail

---
 pdf.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/pdf.c b/pdf.c
index b77d8ce..f3485ad 100644
--- a/pdf.c
+++ b/pdf.c
@@ -1810,20 +1810,20 @@ LZWDecode(const Dict *parms, HBytes b, HParser *p)
 	}
 	done = depredict(&pred, cur_lzw_spec->lzw_buf, cur_lzw_spec->write_head-1);
 
-	if(!done)
+	if(done && ret)
 	{
-		// happens if depred() thinks it needs more bytes or when depred is depred_none
-		fprintf(stderr, "LZWDecode: warning, depredict() returns 0, but lzw_decompress finished without error\n");
+		fprintf(stderr, "LZWDecode: Depredict returned zero!\n");
 	}
 
+#ifdef ITERATIVE
+	assert(done); // XXX always 0 if depredict() is depred_none
+#endif
+
 	res = h_parse(p, pred.out, pred.nout);
-	free(pred.out);
 
 	bind_lzw_spec(NULL);
 	delete_lzw_spec(lzw_spec);
-
-	assert(res->ast && res->ast->token_type == TT_BYTES);
-	res = h_parse(p, res->ast->bytes.token, res->ast->bytes.len);
+	free(pred.out);
 
 	return res;
 }
-- 
GitLab