void pdf_dropstore(pdf_store *store) { pdf_emptystore(store); fz_drophash(store->hash); fz_free(store); }
static int pdfLoadPage(PDFContext* ctx) { if (fullPageBuffer != NULL) { fz_droppixmap(fullPageBuffer); fullPageBuffer = NULL; } strcpy(lastPageError, "No error"); fz_error *error; fz_obj *obj; if (ctx->page) pdf_droppage(ctx->page); ctx->page = 0; // empty store to save memory if (ctx->xref->store) pdf_emptystore(ctx->xref->store); bk_pdf_resetbufferssize(); /* pdf_item *item; fz_obj *key; list<fz_obj *key> keys; for (item = ctx->xref->store->root; item; item = item->next) { if (item->kind == PDF_KIMAGE) keys << key; } list<fz_obj *key>::iterator it(keys.begin); while (it != keys.end()) { ++it; } */ obj = pdf_getpageobject(ctx->pages, ctx->pageno - 1, ctx->xref); error = pdf_loadpage(&ctx->page, ctx->xref, obj); if (error) { printf("errLP1: %s\n", error->msg); strcpy(lastPageError, error->msg); return -1; } //printf("\n\n debug tree ------------------------------------------------\n"); //fz_debugtree(ctx->page->tree); //optimizeNode(ctx->page->tree->root); //printf("\n\n OPT debug tree OPT ------------------------------------------------\n"); //fz_debugtree(ctx->page->tree); recalcScreenMediaBox(ctx); if (BKUser::options.pdfFastScroll) { pdfRenderFullPage(ctx); } return 0; }