diff options
Diffstat (limited to 'tree/meta.c')
-rw-r--r-- | tree/meta.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tree/meta.c b/tree/meta.c new file mode 100644 index 00000000..4d3a2a74 --- /dev/null +++ b/tree/meta.c @@ -0,0 +1,37 @@ +#include <fitz.h> + +fz_error * +fz_newmeta(fz_node **nodep, fz_obj *info) +{ + fz_meta *node; + + node = fz_malloc(sizeof (fz_meta)); + if (!node) + return fz_outofmem; + *nodep = (fz_node*)node; + + fz_initnode((fz_node*)node, FZ_NMETA); + node->info = fz_keepobj(info); + node->child = nil; + + return nil; +} + +void +fz_freemeta(fz_meta *node) +{ + if (node->child) + fz_freenode(node->child); + if (node->info) + fz_dropobj(node->info); + fz_free(node); +} + +fz_rect +fz_boundmeta(fz_meta *node, fz_matrix ctm) +{ + if (!node->child) + return FZ_INFRECT; + return fz_boundnode(node->child, ctm); +} + |