From 0bfdb9c44a19e4d21774f90c3ba2937858148e07 Mon Sep 17 00:00:00 2001 From: HW Date: Thu, 8 Dec 2011 01:16:40 +0100 Subject: [PATCH] added freeing of document resources --- pdf.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pdf.c b/pdf.c index 637c28950..596d60054 100644 --- a/pdf.c +++ b/pdf.c @@ -68,6 +68,12 @@ static int openDocument(lua_State *L) { return 1; } +static int closeDocument(lua_State *L) { + PdfDocument *doc = (PdfDocument*) luaL_checkudata(L, 1, "pdfdocument"); + fz_free_glyph_cache(doc->glyphcache); + pdf_free_xref(doc->xref); +} + static int getNumberOfPages(lua_State *L) { PdfDocument *doc = (PdfDocument*) luaL_checkudata(L, 1, "pdfdocument"); lua_pushinteger(L, doc->pages); @@ -316,6 +322,8 @@ static const struct luaL_reg pdf_func[] = { static const struct luaL_reg pdfdocument_meth[] = { {"openPage", openPage}, {"getPages", getNumberOfPages}, + {"close", closeDocument}, + {"__gc", closeDocument}, {NULL, NULL} };