diff --git a/base b/base index 08cddec4b..f9b948ce3 160000 --- a/base +++ b/base @@ -1 +1 @@ -Subproject commit 08cddec4b948220fb1fcb4b6b01718b217212c8e +Subproject commit f9b948ce34d915f21d89a8cad955ac15986aee7b diff --git a/frontend/document/credocument.lua b/frontend/document/credocument.lua index 5662750b6..eee1f1dab 100644 --- a/frontend/document/credocument.lua +++ b/frontend/document/credocument.lua @@ -148,8 +148,23 @@ function CreDocument:getCoverPageImage() if data and size then local Mupdf = require("ffi/mupdf") local ok, image = pcall(Mupdf.renderImage, data, size) + ffi.C.free(data) + if ok then + return image + end + end +end + +function CreDocument:getImageFromPosition(pos) + local data, size = self._document:getImageDataFromPosition(pos.x, pos.y) + if data and size then + logger.dbg("CreDocument: got image data from position", data, size) + local Mupdf = require("ffi/mupdf") + -- wrapped with pcall so we always free(data) + local ok, image = pcall(Mupdf.renderImage, data, size) + ffi.C.free(data) -- need that explicite clean + logger.dbg("Mupdf.renderImage", ok, image) if ok then - ffi.C.free(data) return image end end @@ -250,6 +265,10 @@ function CreDocument:getXPointer() return self._document:getXPointer() end +function CreDocument:isXPointerInDocument(xp) + return self._document:isXPointerInDocument(xp) +end + function CreDocument:getPosFromXPointer(xp) return self._document:getPosFromXPointer(xp) end diff --git a/frontend/document/document.lua b/frontend/document/document.lua index 6c53a8b6b..b64cf37ed 100644 --- a/frontend/document/document.lua +++ b/frontend/document/document.lua @@ -244,6 +244,10 @@ function Document:getLinkFromPosition(pageno, pos) return nil end +function Document:getImageFromPosition(pos) + return nil +end + function Document:getTextBoxes(pageno) return nil end