summaryrefslogtreecommitdiff
path: root/platform/java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/java')
-rw-r--r--platform/java/com/artifex/mupdf/fitz/Device.java1
-rw-r--r--platform/java/com/artifex/mupdf/fitz/NativeDevice.java2
-rw-r--r--platform/java/mupdf_native.c23
-rw-r--r--platform/java/mupdf_native.h8
4 files changed, 32 insertions, 2 deletions
diff --git a/platform/java/com/artifex/mupdf/fitz/Device.java b/platform/java/com/artifex/mupdf/fitz/Device.java
index b4e87481..71f0ba54 100644
--- a/platform/java/com/artifex/mupdf/fitz/Device.java
+++ b/platform/java/com/artifex/mupdf/fitz/Device.java
@@ -38,6 +38,7 @@ public class Device
* };
*/
+ public void close() {}
public void fillPath(Path path, boolean evenOdd, Matrix ctm, ColorSpace cs, float color[], float alpha) {}
public void strokePath(Path path, StrokeState stroke, Matrix ctm, ColorSpace cs, float color[], float alpha) {}
public void clipPath(Path path, boolean evenOdd, Matrix ctm) {}
diff --git a/platform/java/com/artifex/mupdf/fitz/NativeDevice.java b/platform/java/com/artifex/mupdf/fitz/NativeDevice.java
index 968c5f09..6ea7b0a5 100644
--- a/platform/java/com/artifex/mupdf/fitz/NativeDevice.java
+++ b/platform/java/com/artifex/mupdf/fitz/NativeDevice.java
@@ -17,6 +17,8 @@ public class NativeDevice extends Device
super(p);
}
+ public native final void close();
+
public native final void fillPath(Path path, boolean evenOdd, Matrix ctm, ColorSpace cs, float color[], float alpha);
public native final void strokePath(Path path, StrokeState stroke, Matrix ctm, ColorSpace cs, float color[], float alpha);
public native final void clipPath(Path path, boolean evenOdd, Matrix ctm);
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);
diff --git a/platform/java/mupdf_native.h b/platform/java/mupdf_native.h
index 95f17084..4b88903e 100644
--- a/platform/java/mupdf_native.h
+++ b/platform/java/mupdf_native.h
@@ -840,6 +840,14 @@ JNIEXPORT void JNICALL Java_com_artifex_mupdf_fitz_NativeDevice_finalize
/*
* Class: com_artifex_mupdf_fitz_NativeDevice
+ * Method: close
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_com_artifex_mupdf_fitz_NativeDevice_close
+ (JNIEnv *, jobject);
+
+/*
+ * Class: com_artifex_mupdf_fitz_NativeDevice
* Method: fillPath
* Signature: (Lcom/artifex/mupdf/fitz/Path;ZLcom/artifex/mupdf/fitz/Matrix;Lcom/artifex/mupdf/fitz/ColorSpace;[FF)V
*/