diff options
author | Tor Andersson <tor@ghostscript.com> | 2004-11-25 07:06:56 +0100 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2004-11-25 07:06:56 +0100 |
commit | 6796693d6b7db5933aaf5c6a33793abbfd3dd93c (patch) | |
tree | 43d01faf8fba5e36315714d629a2b910d1d7dce6 /tree/optimize.c | |
parent | 3e799920074ffaa718dfa671f3ed424f80c71b71 (diff) | |
download | mupdf-6796693d6b7db5933aaf5c6a33793abbfd3dd93c.tar.xz |
cleanups and c89 fixes
Diffstat (limited to 'tree/optimize.c')
-rw-r--r-- | tree/optimize.c | 29 |
1 files changed, 15 insertions, 14 deletions
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; } |