summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/jni/mupdf.c1
-rw-r--r--pdf/pdf_js.c22
2 files changed, 22 insertions, 1 deletions
diff --git a/android/jni/mupdf.c b/android/jni/mupdf.c
index 29942f3a..915f3946 100644
--- a/android/jni/mupdf.c
+++ b/android/jni/mupdf.c
@@ -259,6 +259,7 @@ Java_com_artifex_mupdf_MuPDFCore_openFile(JNIEnv * env, jobject thiz, jstring jf
if (!ctx)
{
LOGE("Failed to initialise context");
+ (*env)->ReleaseStringUTFChars(env, jfilename, filename);
free(glo);
return 0;
}
diff --git a/pdf/pdf_js.c b/pdf/pdf_js.c
index edee3f3d..6f3db814 100644
--- a/pdf/pdf_js.c
+++ b/pdf/pdf_js.c
@@ -202,9 +202,29 @@ static pdf_jsimp_obj *field_buttonSetCaption(void *jsctx, void *obj, int argc, p
static pdf_jsimp_obj *field_getName(void *jsctx, void *obj)
{
pdf_js *js = (pdf_js *)jsctx;
+ fz_context *ctx = js->doc->ctx;
pdf_obj *field = (pdf_obj *)obj;
+ char *name;
+ pdf_jsimp_obj *oname = NULL;
+
+ if (field == NULL)
+ return NULL;
+
+ name = pdf_field_name(js->doc, field);
+ fz_try(ctx)
+ {
+ oname = pdf_jsimp_from_string(js->imp, name);
+ }
+ fz_always(ctx)
+ {
+ fz_free(ctx, name);
+ }
+ fz_catch(ctx)
+ {
+ fz_rethrow(ctx);
+ }
- return field ? pdf_jsimp_from_string(js->imp, pdf_field_name(js->doc, field)) : NULL;
+ return oname;
}
static void field_setName(void *jsctx, void *obj, pdf_jsimp_obj *val)