summaryrefslogtreecommitdiff
path: root/tree/optimize.c
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2004-11-25 07:06:56 +0100
committerTor Andersson <tor@ghostscript.com>2004-11-25 07:06:56 +0100
commit6796693d6b7db5933aaf5c6a33793abbfd3dd93c (patch)
tree43d01faf8fba5e36315714d629a2b910d1d7dce6 /tree/optimize.c
parent3e799920074ffaa718dfa671f3ed424f80c71b71 (diff)
downloadmupdf-6796693d6b7db5933aaf5c6a33793abbfd3dd93c.tar.xz
cleanups and c89 fixes
Diffstat (limited to 'tree/optimize.c')
-rw-r--r--tree/optimize.c29
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;
}