summaryrefslogtreecommitdiff
path: root/pdf/pdf_js.c
diff options
context:
space:
mode:
Diffstat (limited to 'pdf/pdf_js.c')
-rw-r--r--pdf/pdf_js.c22
1 files changed, 21 insertions, 1 deletions
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)