diff options
Diffstat (limited to 'platform/java/mupdf_native.c')
-rw-r--r-- | platform/java/mupdf_native.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/platform/java/mupdf_native.c b/platform/java/mupdf_native.c index ad8d5ccc..e835a76d 100644 --- a/platform/java/mupdf_native.c +++ b/platform/java/mupdf_native.c @@ -1284,7 +1284,7 @@ fz_java_device_end_tile(fz_context *ctx, fz_device *dev) } static void -fz_java_device_drop_imp(fz_context *ctx, fz_device *dev) +fz_java_device_close(fz_context *ctx, fz_device *dev) { fz_java_device *jdev = (fz_java_device *)dev; JNIEnv *env = jdev->env; @@ -1303,7 +1303,7 @@ static fz_device *fz_new_java_device(fz_context *ctx, JNIEnv *env, jobject self) dev->self = (*env)->NewGlobalRef(env, self); - dev->super.drop_imp = fz_java_device_drop_imp; + dev->super.close = fz_java_device_close; dev->super.fill_path = fz_java_device_fill_path; dev->super.stroke_path = fz_java_device_stroke_path; @@ -1446,6 +1446,25 @@ FUN(NativeDevice_finalize)(JNIEnv *env, jobject self) } JNIEXPORT void JNICALL +FUN(NativeDevice_close)(JNIEnv *env, jobject self) +{ + fz_context *ctx = get_context(env); + fz_device *dev = from_Device(env, self, ctx); + NativeDeviceInfo *info; + + if (ctx == NULL || dev == NULL) + return; + + info = lockNativeDevice(env, self); + fz_try(ctx) + fz_close_device(ctx, dev); + fz_always(ctx) + unlockNativeDevice(env, info); + fz_catch(ctx) + jni_rethrow(env, ctx); +} + +JNIEXPORT void JNICALL FUN(NativeDevice_fillPath)(JNIEnv *env, jobject self, jobject jpath, jboolean even_odd, jobject jctm, jobject jcs, jfloatArray jcolor, float alpha) { fz_context *ctx = get_context(env); |