void fz_drop_tree(fz_context *ctx, fz_tree *node, void (*dropfunc)(fz_context *ctx, void *value)) { if (node) { if (node->left != &sentinel) fz_drop_tree(ctx, node->left, dropfunc); if (node->right != &sentinel) fz_drop_tree(ctx, node->right, dropfunc); fz_free(ctx, node->key); if (dropfunc) dropfunc(ctx, node->value); } }
static void svg_drop_document(fz_context *ctx, fz_document *doc_) { svg_document *doc = (svg_document*)doc_; fz_drop_tree(ctx, doc->idmap, NULL); fz_drop_xml(ctx, doc->root); }