summaryrefslogtreecommitdiff
path: root/pdf/pdf_jsimp_cpp.c
diff options
context:
space:
mode:
Diffstat (limited to 'pdf/pdf_jsimp_cpp.c')
-rw-r--r--pdf/pdf_jsimp_cpp.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/pdf/pdf_jsimp_cpp.c b/pdf/pdf_jsimp_cpp.c
index 5ac449ee..90f2a6e8 100644
--- a/pdf/pdf_jsimp_cpp.c
+++ b/pdf/pdf_jsimp_cpp.c
@@ -166,3 +166,52 @@ void pdf_jsimp_execute_count(pdf_jsimp *imp, char *code, int count)
if (err != NULL)
fz_throw(pdf_jsimp_ctx_cpp(imp), "%s", err);
}
+pdf_jsimp_obj *pdf_jsimp_call_method(pdf_jsimp *imp, pdf_jsimp_method *meth, void *jsctx, void *obj, int argc, pdf_jsimp_obj *args[])
+{
+ fz_context *ctx = pdf_jsimp_ctx_cpp(imp);
+ pdf_jsimp_obj *res;
+
+ fz_try(ctx)
+ {
+ res = meth(jsctx, obj, argc, args);
+ }
+ fz_catch(ctx)
+ {
+ res = NULL;
+ fz_warn(ctx, "%s", ctx->error->message);
+ }
+
+ return res;
+}
+
+pdf_jsimp_obj *pdf_jsimp_call_getter(pdf_jsimp *imp, pdf_jsimp_getter *get, void *jsctx, void *obj)
+{
+ fz_context *ctx = pdf_jsimp_ctx_cpp(imp);
+ pdf_jsimp_obj *res;
+
+ fz_try(ctx)
+ {
+ res = get(jsctx, obj);
+ }
+ fz_catch(ctx)
+ {
+ res = NULL;
+ fz_warn(ctx, "%s", ctx->error->message);
+ }
+
+ return res;
+}
+
+void pdf_jsimp_call_setter(pdf_jsimp *imp, pdf_jsimp_setter *set, void *jsctx, void *obj, pdf_jsimp_obj *val)
+{
+ fz_context *ctx = pdf_jsimp_ctx_cpp(imp);
+
+ fz_try(ctx)
+ {
+ set(jsctx, obj, val);
+ }
+ fz_catch(ctx)
+ {
+ fz_warn(ctx, "%s", ctx->error->message);
+ }
+}