diff options
-rw-r--r-- | android/jni/mupdf.c | 1 | ||||
-rw-r--r-- | pdf/pdf_js.c | 22 |
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) |