From 9b4acc78d2a56a5f79d69f50e72197930509505e Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Tue, 26 Apr 2016 20:11:49 +0200 Subject: Add fz_close_device function. Garbage collected languages need a way to signal that they are done with a device other than freeing it. Call it implicitly on fz_drop_device; so take care not to call it again in case it has been explicitly called already. --- source/tools/murun.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'source/tools') diff --git a/source/tools/murun.c b/source/tools/murun.c index 541930eb..b5726770 100644 --- a/source/tools/murun.c +++ b/source/tools/murun.c @@ -1134,6 +1134,16 @@ static fz_device *new_js_device(fz_context *ctx, js_State *J) /* device calling into c from js */ +static void ffi_Device_close(js_State *J) +{ + fz_context *ctx = js_getcontext(J); + fz_device *dev = js_touserdata(J, 0, "fz_device"); + fz_try(ctx) + fz_close_device(ctx, dev); + fz_catch(ctx) + rethrow(J); +} + static void ffi_Device_fillPath(js_State *J) { fz_context *ctx = js_getcontext(J); @@ -2953,6 +2963,8 @@ int murun_main(int argc, char **argv) js_newobject(J); { + jsB_propfun(J, "Device.close", ffi_Device_close, 0); + jsB_propfun(J, "Device.fillPath", ffi_Device_fillPath, 6); jsB_propfun(J, "Device.strokePath", ffi_Device_strokePath, 6); jsB_propfun(J, "Device.clipPath", ffi_Device_clipPath, 3); -- cgit v1.2.3