From ea4e6bf67da1e01527d66eeabe3229aa0a5750b3 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Sat, 20 Feb 2016 02:54:53 -0800 Subject: [PATCH] leptonica: serialization tweaks, memory handling --- ocrmypdf/leptonica.py | 2 +- ocrmypdf/lib/compile_leptonica.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ocrmypdf/leptonica.py b/ocrmypdf/leptonica.py index e81e96bb..45a04423 100644 --- a/ocrmypdf/leptonica.py +++ b/ocrmypdf/leptonica.py @@ -19,7 +19,6 @@ from .lib._leptonica import ffi from functools import lru_cache lept = ffi.dlopen(find_library('lept')) -libc = ffi.dlopen(None) logger = logging.getLogger(__name__) @@ -120,6 +119,7 @@ class Pix: char_data = ffi.cast('char *', data[0]) data_bytes = ffi.buffer(char_data, size[0])[:] + lept.lept_free(char_data) return dict(data=data_bytes) def __setstate__(self, state): diff --git a/ocrmypdf/lib/compile_leptonica.py b/ocrmypdf/lib/compile_leptonica.py index 045a83fc..e15ce513 100644 --- a/ocrmypdf/lib/compile_leptonica.py +++ b/ocrmypdf/lib/compile_leptonica.py @@ -61,7 +61,10 @@ l_int32 * makePixelSumTab8 ( void ); PIX * pixDeserializeFromMemory ( const l_uint32 *data, size_t nbytes ); l_int32 pixSerializeToMemory ( PIX *pixs, l_uint32 **pdata, size_t *pnbytes ); + +void lept_free(void *ptr); """) + if __name__ == '__main__': ffi.compile()