void pdfapp_close(pdfapp_t *app) { if (app->cache) fz_free_glyph_cache(app->cache); app->cache = NULL; if (app->image) fz_drop_pixmap(app->image); app->image = NULL; if (app->outline) pdf_free_outline(app->outline); app->outline = NULL; if (app->xref) { if (app->xref->store) pdf_free_store(app->xref->store); app->xref->store = NULL; pdf_free_xref(app->xref); app->xref = NULL; } if (app->xps) { xps_free_context(app->xps); app->xps = NULL; } fz_flush_warnings(); }
void pdfapp_close(pdfapp_t *app) { #if 0 if (app->page) pdf_droppage(app->page); app->page = nil; if (app->image) fz_droppixmap(app->image); app->image = nil; /* if (app->outline) pdf_dropoutline(app->outline); app->outline = nil;*/ if (app->xref->store) pdf_dropstore(app->xref->store); app->xref->store = nil; pdf_closexref(app->xref); app->xref = nil; #else if (app->cache) fz_free_glyph_cache(app->cache); app->cache = NULL; if (app->image) fz_drop_pixmap(app->image); app->image = NULL; if (app->outline) pdf_free_outline(app->outline); app->outline = NULL; if (app->xref) { if (app->xref->store) pdf_free_store(app->xref->store); app->xref->store = NULL; pdf_free_xref(app->xref); app->xref = NULL; } fz_flush_warnings(); #endif }
void pdf_free_xref(pdf_xref *xref) { int i; if (xref->store) pdf_free_store(xref->store); if (xref->table) { for (i = 0; i < xref->len; i++) { if (xref->table[i].obj) { fz_drop_obj(xref->table[i].obj); xref->table[i].obj = NULL; } } fz_free(xref->table); } if (xref->page_objs) { for (i = 0; i < xref->page_len; i++) fz_drop_obj(xref->page_objs[i]); fz_free(xref->page_objs); } if (xref->page_refs) { for (i = 0; i < xref->page_len; i++) fz_drop_obj(xref->page_refs[i]); fz_free(xref->page_refs); } if (xref->file) fz_close(xref->file); if (xref->trailer) fz_drop_obj(xref->trailer); if (xref->crypt) pdf_free_crypt(xref->crypt); pdf_free_ocg(xref->ocg); fz_free(xref); }