From dbdae773c372c78cc2dc420da77a76a176274f2f Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 4 Mar 2012 11:39:53 +0800 Subject: [PATCH] fix: handle failure for document get pageinfo --- djvu.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/djvu.c b/djvu.c index 3d009881a..e106058cc 100644 --- a/djvu.c +++ b/djvu.c @@ -197,6 +197,7 @@ static int dcGetGamma(lua_State *L) { } static int openPage(lua_State *L) { + ddjvu_status_t r; DjvuDocument *doc = (DjvuDocument*) luaL_checkudata(L, 1, "djvudocument"); int pageno = luaL_checkint(L, 2); @@ -218,8 +219,10 @@ static int openPage(lua_State *L) { page->doc = doc; page->num = pageno; - /* @TODO:handle failure here */ - ddjvu_document_get_pageinfo(doc->doc_ref, pageno, &(page->info)); + while((r=ddjvu_document_get_pageinfo(doc->doc_ref, pageno, &(page->info)))context, TRUE); + if (r>=DDJVU_JOB_FAILED) + return luaL_error(L, "cannot get page #%d information", pageno); return 1; }