From 6796693d6b7db5933aaf5c6a33793abbfd3dd93c Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Thu, 25 Nov 2004 07:06:56 +0100 Subject: cleanups and c89 fixes --- tree/optimize.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'tree/optimize.c') diff --git a/tree/optimize.c b/tree/optimize.c index 6371ddec..b37df876 100644 --- a/tree/optimize.c +++ b/tree/optimize.c @@ -16,8 +16,6 @@ static void cleanovers(fz_node *node) { next = current->next; - cleanovers(current); - if (fz_isovernode(current)) { if (current->first == current->last) @@ -31,13 +29,16 @@ static void cleanovers(fz_node *node) else fz_insertnodefirst(node, child); } - current = nil; + current = child; } } if (current) prev = current; } + + for (current = node->first; current; current = current->next) + cleanovers(current); } /* @@ -95,19 +96,15 @@ static int fitsinside(fz_node *node, fz_rect clip) static void cleanmasks(fz_node *node) { fz_node *prev; - fz_node *next; fz_node *current; fz_node *shape; fz_node *color; fz_rect bbox; prev = nil; - for (current = node->first; current; current = next) + for (current = node->first; current; current = current->next) { - next = current->next; - - cleanmasks(current); - +retry: if (fz_ismasknode(current)) { shape = current->first; @@ -119,21 +116,23 @@ static void cleanmasks(fz_node *node) { if (fitsinside(color, bbox)) { - printf("removed useless mask\n"); fz_removenode(current); if (prev) fz_insertnodeafter(prev, color); else fz_insertnodefirst(node, color); - current = nil; + current = color; + goto retry; } } } } - if (current) - prev = current; + prev = current; } + + for (current = node->first; current; current = current->next) + cleanmasks(current); } /* @@ -143,7 +142,9 @@ static void cleanmasks(fz_node *node) fz_error * fz_optimizetree(fz_tree *tree) { - cleanovers(tree->root); + if (getenv("DONTOPT")) + return nil; +// cleanovers(tree->root); cleanmasks(tree->root); return nil; } -- cgit v1.2.3