summaryrefslogtreecommitdiff
path: root/fitz/node_misc1.c
diff options
context:
space:
mode:
Diffstat (limited to 'fitz/node_misc1.c')
-rw-r--r--fitz/node_misc1.c65
1 files changed, 30 insertions, 35 deletions
diff --git a/fitz/node_misc1.c b/fitz/node_misc1.c
index 48bd1278..128406e3 100644
--- a/fitz/node_misc1.c
+++ b/fitz/node_misc1.c
@@ -32,44 +32,39 @@ fz_initnode(fz_node *node, fz_nodekind kind)
void
fz_dropnode(fz_node *node)
{
- fz_node *next;
+ if (node->first)
+ fz_dropnode(node->first);
+ if (node->next)
+ fz_dropnode(node->next);
- while (node)
+ switch (node->kind)
{
- if (node->first)
- fz_dropnode(node->first);
-
- switch (node->kind)
- {
- case FZ_NTRANSFORM:
- case FZ_NOVER:
- case FZ_NMASK:
- case FZ_NBLEND:
- break;
- case FZ_NCOLOR:
- fz_dropsolidnode((fz_solidnode *) node);
- break;
- case FZ_NPATH:
- fz_droppathnode((fz_pathnode *) node);
- break;
- case FZ_NTEXT:
- fz_droptextnode((fz_textnode *) node);
- break;
- case FZ_NIMAGE:
- fz_dropimagenode((fz_imagenode *) node);
- break;
- case FZ_NSHADE:
- fz_dropshadenode((fz_shadenode *) node);
- break;
- case FZ_NLINK:
- fz_droplinknode((fz_linknode *) node);
- break;
- }
-
- next = node->next;
- fz_free(node);
- node = next;
+ case FZ_NTRANSFORM:
+ case FZ_NOVER:
+ case FZ_NMASK:
+ case FZ_NBLEND:
+ break;
+ case FZ_NCOLOR:
+ fz_dropsolidnode((fz_solidnode *) node);
+ break;
+ case FZ_NPATH:
+ fz_droppathnode((fz_pathnode *) node);
+ break;
+ case FZ_NTEXT:
+ fz_droptextnode((fz_textnode *) node);
+ break;
+ case FZ_NIMAGE:
+ fz_dropimagenode((fz_imagenode *) node);
+ break;
+ case FZ_NSHADE:
+ fz_dropshadenode((fz_shadenode *) node);
+ break;
+ case FZ_NLINK:
+ fz_droplinknode((fz_linknode *) node);
+ break;
}
+
+ fz_free(node);
}
fz_rect