[gjs] Port to CallReceiver/CallArgs
- From: Tim Lunn <timl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs] Port to CallReceiver/CallArgs
- Date: Mon, 23 Feb 2015 20:33:06 +0000 (UTC)
commit 31a1e86a8a0f8637e7d9d4a62cd4a6a49814b7e8
Author: Tim Lunn <tim feathertop org>
Date: Sat Jan 3 12:38:05 2015 +1100
Port to CallReceiver/CallArgs
JS_ARGV, JS_SET_RVAL are gone in spidermonkey 31, and JS_THIS will be going away in the future
https://bugzilla.gnome.org/show_bug.cgi?id=742249
gi/boxed.cpp | 10 ++-
gi/function.cpp | 21 +++--
gi/fundamental.cpp | 8 +-
gi/gerror.cpp | 10 ++-
gi/gtype.cpp | 11 ++-
gi/object.cpp | 53 +++++++-----
gi/union.cpp | 6 +-
gjs/byteArray.cpp | 27 +++---
gjs/compat.h | 6 +-
gjs/context.cpp | 27 +++---
gjs/coverage.cpp | 4 +-
modules/cairo-context.cpp | 167 +++++++++++++++++++++----------------
modules/cairo-gradient.cpp | 18 ++--
modules/cairo-image-surface.cpp | 32 +++++---
modules/cairo-linear-gradient.cpp | 2 +-
modules/cairo-pattern.cpp | 6 +-
modules/cairo-pdf-surface.cpp | 2 +-
modules/cairo-ps-surface.cpp | 2 +-
modules/cairo-radial-gradient.cpp | 2 +-
modules/cairo-region.cpp | 23 +++---
modules/cairo-solid-pattern.cpp | 12 ++--
modules/cairo-surface-pattern.cpp | 32 ++++---
modules/cairo-surface.cpp | 15 ++--
modules/cairo-svg-surface.cpp | 2 +-
modules/console.cpp | 3 +-
modules/system.cpp | 31 ++++----
26 files changed, 298 insertions(+), 234 deletions(-)
---
diff --git a/gi/boxed.cpp b/gi/boxed.cpp
index aeb5702..7584525 100644
--- a/gi/boxed.cpp
+++ b/gi/boxed.cpp
@@ -489,11 +489,11 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(boxed)
actual_rval = JSVAL_VOID;
JS_AddValueRoot(context, &actual_rval);
- retval = boxed_new(context, object, priv, argc, argv, &actual_rval);
+ retval = boxed_new(context, object, priv, argc, argv.array(), &actual_rval);
if (retval) {
if (!JSVAL_IS_VOID (actual_rval))
- JS_SET_RVAL(context, vp, actual_rval);
+ argv.rval().set(actual_rval);
else
GJS_NATIVE_CONSTRUCTOR_FINISH(boxed);
}
@@ -894,7 +894,9 @@ to_string_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
Boxed *priv;
JSBool ret = JS_FALSE;
jsval retval;
@@ -907,7 +909,7 @@ to_string_func(JSContext *context,
goto out;
ret = JS_TRUE;
- JS_SET_RVAL(context, vp, retval);
+ rec.rval().set(retval);
out:
return ret;
}
diff --git a/gi/function.cpp b/gi/function.cpp
index 686aaee..304dcdb 100644
--- a/gi/function.cpp
+++ b/gi/function.cpp
@@ -1300,9 +1300,10 @@ function_call(JSContext *context,
unsigned js_argc,
jsval *vp)
{
- jsval *js_argv = JS_ARGV(context, vp);
- JSObject *object = JS_THIS_OBJECT(context, vp);
- JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(context, vp));
+ JS::CallArgs js_argv = JS::CallArgsFromVp (js_argc, vp);
+ JSObject *object = JSVAL_TO_OBJECT(js_argv.thisv());
+ JSObject *callee = &js_argv.callee();
+
JSBool success;
Function *priv;
jsval retval;
@@ -1316,9 +1317,9 @@ function_call(JSContext *context,
return JS_TRUE; /* we are the prototype, or have the wrong class */
- success = gjs_invoke_c_function(context, priv, object, js_argc, js_argv, &retval, NULL);
+ success = gjs_invoke_c_function(context, priv, object, js_argc, js_argv.array(), &retval, NULL);
if (success)
- JS_SET_RVAL(context, vp, retval);
+ js_argv.rval().set(retval);
return success;
}
@@ -1367,6 +1368,8 @@ get_num_arguments (JSContext *context,
jsval retval;
Function *priv;
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp.address());
+
priv = priv_from_js(context, obj);
if (priv == NULL)
@@ -1387,7 +1390,7 @@ get_num_arguments (JSContext *context,
}
retval = INT_TO_JSVAL(n_jsargs);
- JS_SET_RVAL(context, vp.address(), retval);
+ rec.rval().set(retval);
return JS_TRUE;
}
@@ -1406,7 +1409,9 @@ function_to_string (JSContext *context,
GString *arg_names_str;
gchar *arg_names;
- self = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ self = JSVAL_TO_OBJECT(rec.thisv());
+
if (!self) {
gjs_throw(context, "this cannot be null");
return JS_FALSE;
@@ -1458,7 +1463,7 @@ function_to_string (JSContext *context,
out:
if (gjs_string_from_utf8(context, string, -1, &retval)) {
- JS_SET_RVAL(context, vp, retval);
+ rec.rval().set(retval);
ret = JS_TRUE;
}
diff --git a/gi/fundamental.cpp b/gi/fundamental.cpp
index 9ca8003..0e1908f 100644
--- a/gi/fundamental.cpp
+++ b/gi/fundamental.cpp
@@ -444,7 +444,7 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(fundamental_instance)
"fundamental constructor, obj %p priv %p",
object, priv);
- if (!fundamental_invoke_constructor(priv, context, object, argc, argv, &ret_value))
+ if (!fundamental_invoke_constructor(priv, context, object, argc, argv.array(), &ret_value))
return JS_FALSE;
associate_js_instance_to_fundamental(context, object, ret_value.v_pointer, FALSE);
@@ -504,7 +504,9 @@ to_string_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
FundamentalInstance *priv;
JSBool ret = JS_FALSE;
jsval retval;
@@ -531,7 +533,7 @@ to_string_func(JSContext *context,
}
ret = JS_TRUE;
- JS_SET_RVAL(context, vp, retval);
+ rec.rval().set(retval);
out:
return ret;
}
diff --git a/gi/gerror.cpp b/gi/gerror.cpp
index 2384cd5..f183ca3 100644
--- a/gi/gerror.cpp
+++ b/gi/gerror.cpp
@@ -215,7 +215,8 @@ error_to_string(JSContext *context, unsigned argc, jsval *vp)
gchar *descr;
JSBool retval;
- v_self = JS_THIS(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ v_self = rec.thisv();
if (!JSVAL_IS_OBJECT(v_self)) {
/* Lie a bit here... */
gjs_throw(context, "GLib.Error.prototype.toString() called on a non object");
@@ -251,7 +252,7 @@ error_to_string(JSContext *context, unsigned argc, jsval *vp)
goto out;
}
- JS_SET_RVAL(context, vp, v_out);
+ rec.rval().set(v_out);
retval = JS_TRUE;
out:
@@ -267,7 +268,8 @@ error_constructor_value_of(JSContext *context, unsigned argc, jsval *vp)
jsval v_out;
jsid prototype_name;
- v_self = JS_THIS(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ v_self = rec.thisv();
if (!JSVAL_IS_OBJECT(v_self)) {
/* Lie a bit here... */
gjs_throw(context, "GLib.Error.valueOf() called on a non object");
@@ -295,7 +297,7 @@ error_constructor_value_of(JSContext *context, unsigned argc, jsval *vp)
v_out = INT_TO_JSVAL(priv->domain);
- JS_SET_RVAL(context, vp, v_out);
+ rec.rval().set(v_out);
return TRUE;
}
diff --git a/gi/gtype.cpp b/gi/gtype.cpp
index 7ac2a38..ea2b496 100644
--- a/gi/gtype.cpp
+++ b/gi/gtype.cpp
@@ -66,7 +66,9 @@ to_string_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
GType gtype;
gchar *strval;
JSBool ret;
@@ -81,7 +83,7 @@ to_string_func(JSContext *context,
g_type_name(gtype));
ret = gjs_string_from_utf8(context, strval, -1, &retval);
if (ret)
- JS_SET_RVAL(context, vp, retval);
+ rec.rval().set(retval);
g_free(strval);
return ret;
}
@@ -95,16 +97,17 @@ get_name_func (JSContext *context,
GType gtype;
JSBool ret;
jsval retval;
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp.address());
gtype = GPOINTER_TO_SIZE(priv_from_js(context, obj));
if (gtype == 0) {
- JS_SET_RVAL(context, vp.address(), JSVAL_NULL);
+ rec.rval().set(JSVAL_NULL);
return TRUE;
} else {
ret = gjs_string_from_utf8(context, g_type_name(gtype), -1, &retval);
if (ret)
- JS_SET_RVAL(context, vp.address(), retval);
+ rec.rval().set(retval);
return ret;
}
}
diff --git a/gi/object.cpp b/gi/object.cpp
index cdc7775..5e07378 100644
--- a/gi/object.cpp
+++ b/gi/object.cpp
@@ -1348,12 +1348,12 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(object_instance)
return JS_FALSE;
rval = JSVAL_VOID;
- ret = gjs_call_function_value(context, object, initer, argc, argv, &rval);
+ ret = gjs_call_function_value(context, object, initer, argc, argv.array(), &rval);
if (JSVAL_IS_VOID(rval))
rval = OBJECT_TO_JSVAL(object);
- JS_SET_RVAL(context, vp, rval);
+ argv.rval().set(rval);
return ret;
}
@@ -1560,8 +1560,9 @@ real_connect_func(JSContext *context,
jsval *vp,
gboolean after)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
ObjectInstance *priv;
GClosure *closure;
gulong id;
@@ -1640,7 +1641,7 @@ real_connect_func(JSContext *context,
goto out;
}
- JS_SET_RVAL(context, vp, retval);
+ argv.rval().set(retval);
ret = JS_TRUE;
out:
@@ -1669,8 +1670,9 @@ emit_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
ObjectInstance *priv;
guint signal_id;
GQuark signal_detail;
@@ -1779,7 +1781,7 @@ emit_func(JSContext *context,
}
if (!failed)
- JS_SET_RVAL(context, vp, retval);
+ argv.rval().set(retval);
ret = !failed;
out:
@@ -1792,7 +1794,9 @@ to_string_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
ObjectInstance *priv;
JSBool ret = JS_FALSE;
jsval retval;
@@ -1812,7 +1816,7 @@ to_string_func(JSContext *context,
goto out;
ret = JS_TRUE;
- JS_SET_RVAL(context, vp, retval);
+ rec.rval().set(retval);
out:
return ret;
}
@@ -1842,17 +1846,18 @@ init_func (JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
JSBool ret;
if (!do_base_typecheck(context, obj, TRUE))
return FALSE;
- ret = object_instance_init(context, &obj, argc, argv);
+ ret = object_instance_init(context, &obj, argc, argv.array());
if (ret)
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(obj));
+ argv.rval().set(OBJECT_TO_JSVAL(obj));
return ret;
}
@@ -2274,7 +2279,7 @@ gjs_hook_up_vfunc(JSContext *cx,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(cx, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
gchar *name;
JSObject *object;
JSObject *function;
@@ -2285,8 +2290,8 @@ gjs_hook_up_vfunc(JSContext *cx,
gpointer implementor_vtable;
GIFieldInfo *field_info;
- if (!gjs_parse_args(cx, "hook_up_vfunc",
- "oso", argc, argv,
+ if (!gjs_parse_call_args(cx, "hook_up_vfunc",
+ "oso", argv,
"object", &object,
"name", &name,
"function", &function))
@@ -2311,7 +2316,7 @@ gjs_hook_up_vfunc(JSContext *cx,
* This is awful, so abort now. */
g_assert(info != NULL);
- JS_SET_RVAL(cx, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
vfunc = find_vfunc_on_parents(info, name, NULL);
@@ -2527,7 +2532,7 @@ gjs_register_type(JSContext *cx,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(cx, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
gchar *name;
JSObject *parent, *constructor, *interfaces, *properties, *module;
GType instance_type, parent_type;
@@ -2555,8 +2560,8 @@ gjs_register_type(JSContext *cx,
JS_BeginRequest(cx);
- if (!gjs_parse_args(cx, "register_type",
- "osoo", argc, argv,
+ if (!gjs_parse_call_args(cx, "register_type",
+ "osoo", argv,
"parent", &parent,
"name", &name,
"interfaces", &interfaces,
@@ -2667,7 +2672,7 @@ gjs_register_type(JSContext *cx,
module = gjs_lookup_private_namespace(cx);
gjs_define_object_class(cx, module, NULL, instance_type, &constructor);
- JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(constructor));
+ argv.rval().set(OBJECT_TO_JSVAL(constructor));
retval = JS_TRUE;
@@ -2683,7 +2688,7 @@ gjs_signal_new(JSContext *cx,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(cx, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
JSObject *obj;
GType gtype;
gchar *signal_name = NULL;
@@ -2758,7 +2763,7 @@ gjs_signal_new(JSContext *cx,
n_parameters,
params);
- JS_SET_RVAL(cx, vp, INT_TO_JSVAL(signal_id));
+ argv.rval().set(INT_TO_JSVAL(signal_id));
ret = JS_TRUE;
out:
diff --git a/gi/union.cpp b/gi/union.cpp
index 718b991..23ca458 100644
--- a/gi/union.cpp
+++ b/gi/union.cpp
@@ -283,7 +283,9 @@ to_string_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
Union *priv;
JSBool ret = JS_FALSE;
jsval retval;
@@ -296,7 +298,7 @@ to_string_func(JSContext *context,
goto out;
ret = JS_TRUE;
- JS_SET_RVAL(context, vp, retval);
+ rec.rval().set(retval);
out:
return ret;
}
diff --git a/gjs/byteArray.cpp b/gjs/byteArray.cpp
index 8f99f42..b543fa5 100644
--- a/gjs/byteArray.cpp
+++ b/gjs/byteArray.cpp
@@ -416,8 +416,8 @@ to_string_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *object = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *object = JSVAL_TO_OBJECT(argv.thisv());
ByteArrayInstance *priv;
char *encoding;
gboolean encoding_is_utf8;
@@ -468,7 +468,7 @@ to_string_func(JSContext *context,
priv->array->len,
&retval);
if (ok)
- JS_SET_RVAL(context, vp, retval);
+ argv.rval().set(retval);
return ok;
} else {
JSBool ok = JS_FALSE;
@@ -502,7 +502,7 @@ to_string_func(JSContext *context,
bytes_written / 2);
if (s != NULL) {
ok = JS_TRUE;
- JS_SET_RVAL(context, vp, STRING_TO_JSVAL(s));
+ argv.rval().set(STRING_TO_JSVAL(s));
}
g_free(u16_str);
@@ -515,7 +515,8 @@ to_gbytes_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *object = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *object = JSVAL_TO_OBJECT(rec.thisv());
ByteArrayInstance *priv;
JSObject *ret_bytes_obj;
GIBaseInfo *gbytes_info;
@@ -530,7 +531,7 @@ to_gbytes_func(JSContext *context,
ret_bytes_obj = gjs_boxed_from_c_struct(context, (GIStructInfo*)gbytes_info,
priv->bytes, GJS_BOXED_CREATION_NONE);
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(ret_bytes_obj));
+ rec.rval().set(OBJECT_TO_JSVAL(ret_bytes_obj));
return JS_TRUE;
}
@@ -577,7 +578,7 @@ from_string_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
ByteArrayInstance *priv;
char *encoding;
gboolean encoding_is_utf8;
@@ -668,7 +669,7 @@ from_string_func(JSContext *context,
g_free(encoded);
}
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(obj));
+ argv.rval().set(OBJECT_TO_JSVAL(obj));
retval = JS_TRUE;
out:
@@ -682,7 +683,7 @@ from_array_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
ByteArrayInstance *priv;
guint32 len;
guint32 i;
@@ -738,7 +739,7 @@ from_array_func(JSContext *context,
}
ret = JS_TRUE;
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(obj));
+ argv.rval().set(OBJECT_TO_JSVAL(obj));
out:
JS_RemoveObjectRoot(context, &obj);
return ret;
@@ -749,14 +750,14 @@ from_gbytes_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
JSObject *bytes_obj;
GBytes *gbytes;
ByteArrayInstance *priv;
JSObject *obj;
JSBool ret = JS_FALSE;
- if (!gjs_parse_args(context, "overrides_gbytes_to_array", "o", argc, argv,
+ if (!gjs_parse_call_args(context, "overrides_gbytes_to_array", "o", argv,
"bytes", &bytes_obj))
return JS_FALSE;
@@ -774,7 +775,7 @@ from_gbytes_func(JSContext *context,
priv->bytes = g_bytes_ref(gbytes);
ret = JS_TRUE;
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(obj));
+ argv.rval().set(OBJECT_TO_JSVAL(obj));
return ret;
}
diff --git a/gjs/compat.h b/gjs/compat.h
index b5b617f..236ce60 100644
--- a/gjs/compat.h
+++ b/gjs/compat.h
@@ -77,8 +77,8 @@ gjs_##name##_constructor(JSContext *context, \
* be at the very top.
*/
#define GJS_NATIVE_CONSTRUCTOR_VARIABLES(name) \
- JSObject *object = NULL; \
- jsval *argv G_GNUC_UNUSED = JS_ARGV(context, vp);
+ JSObject *object = NULL; \
+ JS::CallArgs argv G_GNUC_UNUSED = JS::CallArgsFromVp(argc, vp);
/**
* GJS_NATIVE_CONSTRUCTOR_PRELUDE:
@@ -101,7 +101,7 @@ gjs_##name##_constructor(JSContext *context, \
* successfully.
*/
#define GJS_NATIVE_CONSTRUCTOR_FINISH(name) \
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(object));
+ argv.rval().set(OBJECT_TO_JSVAL(object));
/**
* GJS_NATIVE_CONSTRUCTOR_DEFINE_ABSTRACT:
diff --git a/gjs/context.cpp b/gjs/context.cpp
index 39c852a..19120c4 100644
--- a/gjs/context.cpp
+++ b/gjs/context.cpp
@@ -107,7 +107,7 @@ gjs_log(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
char *s;
JSExceptionState *exc_state;
JSString *jstr;
@@ -142,7 +142,7 @@ gjs_log(JSContext *context,
g_free(s);
JS_EndRequest(context);
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -151,7 +151,7 @@ gjs_log_error(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
JSExceptionState *exc_state;
JSString *jstr;
@@ -178,14 +178,13 @@ gjs_log_error(JSContext *context,
gjs_log_exception_full(context, argv[0], jstr);
JS_EndRequest(context);
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
static JSBool
gjs_print_parse_args(JSContext *context,
- unsigned argc,
- jsval *argv,
+ JS::CallArgs &argv,
char **buffer)
{
GString *str;
@@ -195,7 +194,7 @@ gjs_print_parse_args(JSContext *context,
JS_BeginRequest(context);
str = g_string_new("");
- for (n = 0; n < argc; ++n) {
+ for (n = 0; n < argv.length(); ++n) {
JSExceptionState *exc_state;
JSString *jstr;
@@ -218,7 +217,7 @@ gjs_print_parse_args(JSContext *context,
g_string_append(str, s);
g_free(s);
- if (n < (argc-1))
+ if (n < (argv.length()-1))
g_string_append_c(str, ' ');
} else {
JS_EndRequest(context);
@@ -240,17 +239,17 @@ gjs_print(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
char *buffer;
- if (!gjs_print_parse_args(context, argc, argv, &buffer)) {
+ if (!gjs_print_parse_args(context, argv, &buffer)) {
return FALSE;
}
g_print("%s\n", buffer);
g_free(buffer);
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -259,17 +258,17 @@ gjs_printerr(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
char *buffer;
- if (!gjs_print_parse_args(context, argc, argv, &buffer)) {
+ if (!gjs_print_parse_args(context, argv, &buffer)) {
return FALSE;
}
g_printerr("%s\n", buffer);
g_free(buffer);
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
diff --git a/gjs/coverage.cpp b/gjs/coverage.cpp
index 73ed9e8..a9b982d 100644
--- a/gjs/coverage.cpp
+++ b/gjs/coverage.cpp
@@ -979,7 +979,7 @@ coverage_warning(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
char *s;
JSExceptionState *exc_state;
JSString *jstr;
@@ -1014,7 +1014,7 @@ coverage_warning(JSContext *context,
g_free(s);
JS_EndRequest(context);
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
diff --git a/modules/cairo-context.cpp b/modules/cairo-context.cpp
index 0bf6489..8e06d16 100644
--- a/modules/cairo-context.cpp
+++ b/modules/cairo-context.cpp
@@ -36,7 +36,8 @@ mname##_func(JSContext *context, \
unsigned argc, \
jsval *vp) \
{ \
- JSObject *obj = JS_THIS_OBJECT(context, vp); \
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp); \
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv()); \
cairo_t *cr;
#define _GJS_CAIRO_CONTEXT_DEFINE_FUNC_END \
@@ -55,7 +56,7 @@ mname##_func(JSContext *context, \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
cr = gjs_cairo_context_get_context(context, obj); \
cfunc(cr); \
- JS_SET_RVAL(context, vp, JSVAL_VOID); \
+ argv.rval().set(JSVAL_VOID); \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
#define _GJS_CAIRO_CONTEXT_DEFINE_FUNC0I(method, cfunc) \
@@ -64,7 +65,7 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
_GJS_CAIRO_CONTEXT_CHECK_NO_ARGS(method) \
cr = gjs_cairo_context_get_context(context, obj); \
ret = (int)cfunc(cr); \
- JS_SET_RVAL(context, vp, INT_TO_JSVAL(ret)); \
+ argv.rval().setInt32(ret); \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
#define _GJS_CAIRO_CONTEXT_DEFINE_FUNC0B(method, cfunc) \
@@ -73,13 +74,13 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
_GJS_CAIRO_CONTEXT_CHECK_NO_ARGS(method) \
cr = gjs_cairo_context_get_context(context, obj); \
ret = cfunc(cr); \
- JS_SET_RVAL(context, vp, BOOLEAN_TO_JSVAL(ret)); \
+ argv.rval().set(BOOLEAN_TO_JSVAL(ret)); \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
#define _GJS_CAIRO_CONTEXT_DEFINE_FUNC2FFAFF(method, cfunc, n1, n2) \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
double arg1, arg2; \
- if (!gjs_parse_args(context, #method, "ff", argc, JS_ARGV(context, vp), \
+ if (!gjs_parse_call_args(context, #method, "ff", argv, \
#n1, &arg1, #n2, &arg2)) \
return JS_FALSE; \
cr = gjs_cairo_context_get_context(context, obj); \
@@ -93,7 +94,7 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
if (!JS_SetElement(context, array, 0, &r)) return JS_FALSE; \
if (!JS_NewNumberValue(context, arg2, &r)) return JS_FALSE; \
if (!JS_SetElement(context, array, 1, &r)) return JS_FALSE; \
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(array)); \
+ argv.rval().set(OBJECT_TO_JSVAL(array)); \
} \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
@@ -112,7 +113,7 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
if (!JS_SetElement(context, array, 0, &r)) return JS_FALSE; \
if (!JS_NewNumberValue(context, arg2, &r)) return JS_FALSE; \
if (!JS_SetElement(context, array, 1, &r)) return JS_FALSE; \
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(array)); \
+ argv.rval().set(OBJECT_TO_JSVAL(array)); \
} \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
@@ -135,7 +136,7 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
if (!JS_SetElement(context, array, 2, &r)) return JS_FALSE; \
if (!JS_NewNumberValue(context, arg4, &r)) return JS_FALSE; \
if (!JS_SetElement(context, array, 3, &r)) return JS_FALSE; \
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(array)); \
+ argv.rval().set(OBJECT_TO_JSVAL(array)); \
} \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
@@ -148,30 +149,30 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
ret = cfunc(cr); \
if (!JS_NewNumberValue(context, ret, &retval)) \
return JS_FALSE; \
- JS_SET_RVAL(context, vp, retval); \
+ argv.rval().set(retval); \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
#define _GJS_CAIRO_CONTEXT_DEFINE_FUNC1(method, cfunc, fmt, t1, n1) \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
t1 arg1; \
- if (!gjs_parse_args(context, #method, fmt, argc, JS_ARGV(context, vp), \
+ if (!gjs_parse_call_args(context, #method, fmt, argv, \
#n1, &arg1)) \
return JS_FALSE; \
cr = gjs_cairo_context_get_context(context, obj); \
cfunc(cr, arg1); \
- JS_SET_RVAL(context, vp, JSVAL_VOID); \
+ argv.rval().set(JSVAL_VOID); \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
#define _GJS_CAIRO_CONTEXT_DEFINE_FUNC2(method, cfunc, fmt, t1, n1, t2, n2) \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
t1 arg1; \
t2 arg2; \
- if (!gjs_parse_args(context, #method, fmt, argc, JS_ARGV(context, vp), \
+ if (!gjs_parse_call_args(context, #method, fmt, argv, \
#n1, &arg1, #n2, &arg2)) \
return JS_FALSE; \
cr = gjs_cairo_context_get_context(context, obj); \
cfunc(cr, arg1, arg2); \
- JS_SET_RVAL(context, vp, JSVAL_VOID); \
+ argv.rval().set(JSVAL_VOID); \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
#define _GJS_CAIRO_CONTEXT_DEFINE_FUNC2B(method, cfunc, fmt, t1, n1, t2, n2) \
@@ -179,12 +180,12 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
t1 arg1; \
t2 arg2; \
cairo_bool_t ret; \
- if (!gjs_parse_args(context, #method, fmt, argc, JS_ARGV(context, vp), \
+ if (!gjs_parse_call_args(context, #method, fmt, argv, \
#n1, &arg1, #n2, &arg2)) \
return JS_FALSE; \
cr = gjs_cairo_context_get_context(context, obj); \
ret = cfunc(cr, arg1, arg2); \
- JS_SET_RVAL(context, vp, BOOLEAN_TO_JSVAL(ret)); \
+ argv.rval().set(BOOLEAN_TO_JSVAL(ret)); \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
#define _GJS_CAIRO_CONTEXT_DEFINE_FUNC3(method, cfunc, fmt, t1, n1, t2, n2, t3, n3) \
@@ -192,12 +193,12 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
t1 arg1; \
t2 arg2; \
t3 arg3; \
- if (!gjs_parse_args(context, #method, fmt, argc, JS_ARGV(context, vp), \
+ if (!gjs_parse_call_args(context, #method, fmt, argv, \
#n1, &arg1, #n2, &arg2, #n3, &arg3)) \
return JS_FALSE; \
cr = gjs_cairo_context_get_context(context, obj); \
cfunc(cr, arg1, arg2, arg3); \
- JS_SET_RVAL(context, vp, JSVAL_VOID); \
+ argv.rval().set(JSVAL_VOID); \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
#define _GJS_CAIRO_CONTEXT_DEFINE_FUNC4(method, cfunc, fmt, t1, n1, t2, n2, t3, n3, t4, n4) \
@@ -206,7 +207,7 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
t2 arg2; \
t3 arg3; \
t4 arg4; \
- if (!gjs_parse_args(context, #method, fmt, argc, JS_ARGV(context, vp), \
+ if (!gjs_parse_call_args(context, #method, fmt, argv, \
#n1, &arg1, #n2, &arg2, #n3, &arg3, #n4, &arg4)) \
return JS_FALSE; \
cr = gjs_cairo_context_get_context(context, obj); \
@@ -220,13 +221,13 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
t3 arg3; \
t4 arg4; \
t5 arg5; \
- if (!gjs_parse_args(context, #method, fmt, argc, JS_ARGV(context, vp), \
+ if (!gjs_parse_call_args(context, #method, fmt, argv, \
#n1, &arg1, #n2, &arg2, #n3, &arg3, \
#n4, &arg4, #n5, &arg5)) \
return JS_FALSE; \
cr = gjs_cairo_context_get_context(context, obj); \
cfunc(cr, arg1, arg2, arg3, arg4, arg5); \
- JS_SET_RVAL(context, vp, JSVAL_VOID); \
+ argv.rval().set(JSVAL_VOID); \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
#define _GJS_CAIRO_CONTEXT_DEFINE_FUNC6(method, cfunc, fmt, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6) \
@@ -237,13 +238,13 @@ _GJS_CAIRO_CONTEXT_DEFINE_FUNC_BEGIN(method) \
t4 arg4; \
t5 arg5; \
t6 arg6; \
- if (!gjs_parse_args(context, #method, fmt, argc, JS_ARGV(context, vp), \
+ if (!gjs_parse_call_args(context, #method, fmt, argv, \
#n1, &arg1, #n2, &arg2, #n3, &arg3, \
#n4, &arg4, #n5, &arg5, #n6, &arg6)) \
return JS_FALSE; \
cr = gjs_cairo_context_get_context(context, obj); \
cfunc(cr, arg1, arg2, arg3, arg4, arg5, arg6); \
- JS_SET_RVAL(context, vp, JSVAL_VOID); \
+ argv.rval().set(JSVAL_VOID); \
_GJS_CAIRO_CONTEXT_DEFINE_FUNC_END
typedef struct {
@@ -282,7 +283,7 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(cairo_context)
GJS_NATIVE_CONSTRUCTOR_PRELUDE(cairo_context);
- if (!gjs_parse_args(context, "Context", "o", argc, argv,
+ if (!gjs_parse_call_args(context, "Context", "o", argv,
"surface", &surface_wrapper))
return JS_FALSE;
@@ -410,7 +411,9 @@ dispose_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
GjsCairoContext *priv;
priv = priv_from_js(context, obj);
@@ -418,7 +421,7 @@ dispose_func(JSContext *context,
cairo_destroy(priv->cr);
priv->cr = NULL;
}
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ rec.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -427,13 +430,14 @@ appendPath_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
JSObject *path_wrapper;
cairo_path_t *path;
cairo_t *cr;
- if (!gjs_parse_args(context, "path", "o", argc, argv,
+ if (!gjs_parse_call_args(context, "path", "o", argv,
"path", &path_wrapper))
return JS_FALSE;
@@ -445,7 +449,7 @@ appendPath_func(JSContext *context,
cr = gjs_cairo_context_get_context(context, obj);
cairo_append_path(cr, path);
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -454,17 +458,18 @@ copyPath_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
cairo_path_t *path;
cairo_t *cr;
- if (!gjs_parse_args(context, "", "", argc, argv))
+ if (!gjs_parse_call_args(context, "", "", argv))
return JS_FALSE;
cr = gjs_cairo_context_get_context(context, obj);
path = cairo_copy_path(cr);
- JS_SET_RVAL(context, vp,
+ argv.rval().set(
OBJECT_TO_JSVAL(gjs_cairo_path_from_path(context, path)));
return JS_TRUE;
}
@@ -474,17 +479,18 @@ copyPathFlat_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
cairo_path_t *path;
cairo_t *cr;
- if (!gjs_parse_args(context, "", "", argc, argv))
+ if (!gjs_parse_call_args(context, "", "", argv))
return JS_FALSE;
cr = gjs_cairo_context_get_context(context, obj);
path = cairo_copy_path_flat(cr);
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(gjs_cairo_path_from_path(context, path)));
+ argv.rval().set(OBJECT_TO_JSVAL(gjs_cairo_path_from_path(context, path)));
return JS_TRUE;
}
@@ -493,13 +499,14 @@ mask_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
JSObject *pattern_wrapper;
cairo_pattern_t *pattern;
cairo_t *cr;
- if (!gjs_parse_args(context, "mask", "o", argc, argv,
+ if (!gjs_parse_call_args(context, "mask", "o", argv,
"pattern", &pattern_wrapper))
return JS_FALSE;
@@ -515,7 +522,7 @@ mask_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_status(cr), "context"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -524,14 +531,15 @@ maskSurface_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
JSObject *surface_wrapper;
double x, y;
cairo_surface_t *surface;
cairo_t *cr;
- if (!gjs_parse_args(context, "maskSurface", "off", argc, argv,
+ if (!gjs_parse_call_args(context, "maskSurface", "off", argv,
"surface", &surface_wrapper,
"x", &x,
"y", &y))
@@ -550,7 +558,7 @@ maskSurface_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_status(cr), "context"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -559,8 +567,9 @@ setDash_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
guint i;
cairo_t *cr;
JSObject *dashes;
@@ -569,7 +578,7 @@ setDash_func(JSContext *context,
guint len;
GArray *dashes_c = NULL;
- if (!gjs_parse_args(context, "setDash", "of", argc, argv,
+ if (!gjs_parse_call_args(context, "setDash", "of", argv,
"dashes", &dashes, "offset", &offset))
return JS_FALSE;
@@ -609,7 +618,7 @@ setDash_func(JSContext *context,
cr = gjs_cairo_context_get_context(context, obj);
cairo_set_dash(cr, (double*)dashes_c->data, dashes_c->len, offset);
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
retval = JS_TRUE;
out:
if (dashes_c != NULL)
@@ -623,13 +632,14 @@ setSource_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
JSObject *pattern_wrapper;
cairo_pattern_t *pattern;
cairo_t *cr;
- if (!gjs_parse_args(context, "setSource", "o", argc, argv,
+ if (!gjs_parse_call_args(context, "setSource", "o", argv,
"pattern", &pattern_wrapper))
return JS_FALSE;
@@ -646,7 +656,7 @@ setSource_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_status(cr), "context"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -656,14 +666,15 @@ setSourceSurface_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
JSObject *surface_wrapper;
double x, y;
cairo_surface_t *surface;
cairo_t *cr;
- if (!gjs_parse_args(context, "setSourceSurface", "off", argc, argv,
+ if (!gjs_parse_call_args(context, "setSourceSurface", "off", argv,
"surface", &surface_wrapper,
"x", &x,
"y", &y))
@@ -682,7 +693,7 @@ setSourceSurface_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_status(cr), "context"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -692,12 +703,13 @@ showText_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
char *utf8;
cairo_t *cr;
- if (!gjs_parse_args(context, "showText", "s", argc, argv,
+ if (!gjs_parse_call_args(context, "showText", "s", argv,
"utf8", &utf8))
return JS_FALSE;
@@ -709,7 +721,7 @@ showText_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_status(cr), "context"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -719,14 +731,15 @@ selectFontFace_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
char *family;
cairo_font_slant_t slant;
cairo_font_weight_t weight;
cairo_t *cr;
- if (!gjs_parse_args(context, "selectFontFace", "sii", argc, argv,
+ if (!gjs_parse_call_args(context, "selectFontFace", "sii", argv,
"family", &family,
"slang", &slant,
"weight", &weight))
@@ -739,7 +752,7 @@ selectFontFace_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_status(cr), "context"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -749,7 +762,9 @@ popGroup_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_t *cr;
cairo_pattern_t *pattern;
JSObject *pattern_wrapper;
@@ -771,7 +786,7 @@ popGroup_func(JSContext *context,
return JS_FALSE;
}
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(pattern_wrapper));
+ rec.rval().set(OBJECT_TO_JSVAL(pattern_wrapper));
return JS_TRUE;
}
@@ -780,7 +795,9 @@ getSource_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_t *cr;
cairo_pattern_t *pattern;
JSObject *pattern_wrapper;
@@ -802,7 +819,7 @@ getSource_func(JSContext *context,
return JS_FALSE;
}
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(pattern_wrapper));
+ rec.rval().set(OBJECT_TO_JSVAL(pattern_wrapper));
return JS_TRUE;
}
@@ -812,7 +829,9 @@ getTarget_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_t *cr;
cairo_surface_t *surface;
JSObject *surface_wrapper;
@@ -834,7 +853,7 @@ getTarget_func(JSContext *context,
return JS_FALSE;
}
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(surface_wrapper));
+ rec.rval().set(OBJECT_TO_JSVAL(surface_wrapper));
return JS_TRUE;
}
@@ -844,7 +863,9 @@ getGroupTarget_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_t *cr;
cairo_surface_t *surface;
JSObject *surface_wrapper;
@@ -866,7 +887,7 @@ getGroupTarget_func(JSContext *context,
return JS_FALSE;
}
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(surface_wrapper));
+ rec.rval().set(OBJECT_TO_JSVAL(surface_wrapper));
return JS_TRUE;
}
diff --git a/modules/cairo-gradient.cpp b/modules/cairo-gradient.cpp
index 51e4b2b..1b5c40f 100644
--- a/modules/cairo-gradient.cpp
+++ b/modules/cairo-gradient.cpp
@@ -48,12 +48,13 @@ addColorStopRGB_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
double offset, red, green, blue;
cairo_pattern_t *pattern;
- if (!gjs_parse_args(context, "addColorStopRGB", "ffff", argc, argv,
+ if (!gjs_parse_call_args(context, "addColorStopRGB", "ffff", argv,
"offset", &offset,
"red", &red,
"green", &green,
@@ -67,7 +68,7 @@ addColorStopRGB_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_pattern_status(pattern), "pattern"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -76,12 +77,13 @@ addColorStopRGBA_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
double offset, red, green, blue, alpha;
cairo_pattern_t *pattern;
- if (!gjs_parse_args(context, "addColorStopRGBA", "fffff", argc, argv,
+ if (!gjs_parse_call_args(context, "addColorStopRGBA", "fffff", argv,
"offset", &offset,
"red", &red,
"green", &green,
@@ -95,7 +97,7 @@ addColorStopRGBA_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_pattern_status(pattern), "pattern"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
diff --git a/modules/cairo-image-surface.cpp b/modules/cairo-image-surface.cpp
index 81811f1..8f4bc9d 100644
--- a/modules/cairo-image-surface.cpp
+++ b/modules/cairo-image-surface.cpp
@@ -38,7 +38,7 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(cairo_image_surface)
GJS_NATIVE_CONSTRUCTOR_PRELUDE(cairo_image_surface);
// create_for_data optional parameter
- if (!gjs_parse_args(context, "ImageSurface", "iii", argc, argv,
+ if (!gjs_parse_call_args(context, "ImageSurface", "iii", argv,
"format", &format,
"width", &width,
"height", &height))
@@ -73,12 +73,12 @@ createFromPNG_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
char *filename;
cairo_surface_t *surface;
JSObject *surface_wrapper;
- if (!gjs_parse_args(context, "createFromPNG", "s", argc, argv,
+ if (!gjs_parse_call_args(context, "createFromPNG", "s", argv,
"filename", &filename))
return JS_FALSE;
@@ -95,7 +95,7 @@ createFromPNG_func(JSContext *context,
gjs_cairo_surface_construct(context, surface_wrapper, surface);
cairo_surface_destroy(surface);
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(surface_wrapper));
+ argv.rval().set(OBJECT_TO_JSVAL(surface_wrapper));
return JS_TRUE;
}
@@ -104,7 +104,9 @@ getFormat_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_surface_t *surface;
cairo_format_t format;
@@ -119,7 +121,7 @@ getFormat_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_surface_status(surface), "surface"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, INT_TO_JSVAL(format));
+ rec.rval().setInt32(format);
return JS_TRUE;
}
@@ -128,7 +130,9 @@ getWidth_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_surface_t *surface;
int width;
@@ -143,7 +147,7 @@ getWidth_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_surface_status(surface), "surface"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, INT_TO_JSVAL(width));
+ rec.rval().setInt32(width);
return JS_TRUE;
}
@@ -152,7 +156,9 @@ getHeight_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_surface_t *surface;
int height;
@@ -167,7 +173,7 @@ getHeight_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_surface_status(surface), "surface"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, INT_TO_JSVAL(height));
+ rec.rval().setInt32(height);
return JS_TRUE;
}
@@ -176,7 +182,9 @@ getStride_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_surface_t *surface;
int stride;
@@ -191,7 +199,7 @@ getStride_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_surface_status(surface), "surface"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, INT_TO_JSVAL(stride));
+ rec.rval().setInt32(stride);
return JS_TRUE;
}
diff --git a/modules/cairo-linear-gradient.cpp b/modules/cairo-linear-gradient.cpp
index 7d20aed..89c70a6 100644
--- a/modules/cairo-linear-gradient.cpp
+++ b/modules/cairo-linear-gradient.cpp
@@ -37,7 +37,7 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(cairo_linear_gradient)
GJS_NATIVE_CONSTRUCTOR_PRELUDE(cairo_linear_gradient);
- if (!gjs_parse_args(context, "LinearGradient", "ffff", argc, argv,
+ if (!gjs_parse_call_args(context, "LinearGradient", "ffff", argv,
"x0", &x0,
"y0", &y0,
"x1", &x1,
diff --git a/modules/cairo-pattern.cpp b/modules/cairo-pattern.cpp
index b394346..2102e4e 100644
--- a/modules/cairo-pattern.cpp
+++ b/modules/cairo-pattern.cpp
@@ -62,7 +62,9 @@ getType_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_pattern_t *pattern;
cairo_pattern_type_t type;
@@ -77,7 +79,7 @@ getType_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_pattern_status(pattern), "pattern"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, INT_TO_JSVAL(type));
+ rec.rval().setInt32(type);
return JS_TRUE;
}
diff --git a/modules/cairo-pdf-surface.cpp b/modules/cairo-pdf-surface.cpp
index 8f1f082..22644c4 100644
--- a/modules/cairo-pdf-surface.cpp
+++ b/modules/cairo-pdf-surface.cpp
@@ -41,7 +41,7 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(cairo_pdf_surface)
GJS_NATIVE_CONSTRUCTOR_PRELUDE(cairo_pdf_surface);
- if (!gjs_parse_args(context, "PDFSurface", "sff", argc, argv,
+ if (!gjs_parse_call_args(context, "PDFSurface", "sff", argv,
"filename", &filename,
"width", &width,
"height", &height))
diff --git a/modules/cairo-ps-surface.cpp b/modules/cairo-ps-surface.cpp
index 8a5a510..3a963ad 100644
--- a/modules/cairo-ps-surface.cpp
+++ b/modules/cairo-ps-surface.cpp
@@ -41,7 +41,7 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(cairo_ps_surface)
GJS_NATIVE_CONSTRUCTOR_PRELUDE(cairo_ps_surface);
- if (!gjs_parse_args(context, "PSSurface", "sff", argc, argv,
+ if (!gjs_parse_call_args(context, "PSSurface", "sff", argv,
"filename", &filename,
"width", &width,
"height", &height))
diff --git a/modules/cairo-radial-gradient.cpp b/modules/cairo-radial-gradient.cpp
index 506b1c8..57ab3f5 100644
--- a/modules/cairo-radial-gradient.cpp
+++ b/modules/cairo-radial-gradient.cpp
@@ -37,7 +37,7 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(cairo_radial_gradient)
GJS_NATIVE_CONSTRUCTOR_PRELUDE(cairo_radial_gradient);
- if (!gjs_parse_args(context, "RadialGradient", "ffffff", argc, argv,
+ if (!gjs_parse_call_args(context, "RadialGradient", "ffffff", argv,
"cx0", &cx0,
"cy0", &cy0,
"radius0", &radius0,
diff --git a/modules/cairo-region.cpp b/modules/cairo-region.cpp
index 06af3a1..dfe99d7 100644
--- a/modules/cairo-region.cpp
+++ b/modules/cairo-region.cpp
@@ -54,7 +54,8 @@ fill_rectangle(JSContext *context, JSObject *obj,
cairo_rectangle_int_t *rect);
#define PRELUDE \
- JSObject *obj = JS_THIS_OBJECT(context, vp); \
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp); \
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv()); \
cairo_region_t *this_region = get_region(context, obj);
#define RETURN_STATUS \
@@ -69,8 +70,7 @@ fill_rectangle(JSContext *context, JSObject *obj,
PRELUDE; \
JSObject *other_obj; \
cairo_region_t *other_region; \
- if (!gjs_parse_args(context, #method, "o", argc, \
- JS_ARGV(context, vp), \
+ if (!gjs_parse_call_args(context, #method, "o", argv, \
"other_region", &other_obj)) \
return JS_FALSE; \
\
@@ -78,7 +78,7 @@ fill_rectangle(JSContext *context, JSObject *obj,
other_region = get_region(context, other_obj); \
\
cairo_region_##method(this_region, other_region); \
- JS_SET_RVAL(context, vp, JSVAL_VOID); \
+ argv.rval().set(JSVAL_VOID); \
RETURN_STATUS; \
}
@@ -91,8 +91,7 @@ fill_rectangle(JSContext *context, JSObject *obj,
PRELUDE; \
JSObject *rect_obj; \
cairo_rectangle_int_t rect; \
- if (!gjs_parse_args(context, #method, "o", argc, \
- JS_ARGV(context, vp), \
+ if (!gjs_parse_call_args(context, #method, "o", argv, \
"rect", &rect_obj)) \
return JS_FALSE; \
\
@@ -100,7 +99,7 @@ fill_rectangle(JSContext *context, JSObject *obj,
return JS_FALSE; \
\
cairo_region_##method##_rectangle(this_region, &rect); \
- JS_SET_RVAL(context, vp, JSVAL_VOID); \
+ argv.rval().set(JSVAL_VOID); \
RETURN_STATUS; \
}
@@ -174,12 +173,12 @@ num_rectangles_func(JSContext *context,
int n_rects;
jsval retval;
- if (!gjs_parse_args(context, "num_rectangles", "", argc, JS_ARGV(context, vp)))
+ if (!gjs_parse_call_args(context, "num_rectangles", "", argv))
return JS_FALSE;
n_rects = cairo_region_num_rectangles(this_region);
retval = INT_TO_JSVAL(n_rects);
- JS_SET_RVAL (context, vp, retval);
+ argv.rval().set(retval);
RETURN_STATUS;
}
@@ -194,14 +193,14 @@ get_rectangle_func(JSContext *context,
cairo_rectangle_int_t rect;
jsval retval;
- if (!gjs_parse_args(context, "get_rectangle", "i", argc, JS_ARGV(context, vp), "rect", &i))
+ if (!gjs_parse_call_args(context, "get_rectangle", "i", argv, "rect", &i))
return JS_FALSE;
cairo_region_get_rectangle(this_region, i, &rect);
rect_obj = make_rectangle(context, &rect);
retval = OBJECT_TO_JSVAL(rect_obj);
- JS_SET_RVAL (context, vp, retval);
+ argv.rval().set(retval);
RETURN_STATUS;
}
@@ -249,7 +248,7 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(cairo_region)
GJS_NATIVE_CONSTRUCTOR_PRELUDE(cairo_region);
- if (!gjs_parse_args(context, "Region", "", argc, argv))
+ if (!gjs_parse_call_args(context, "Region", "", argv))
return JS_FALSE;
region = cairo_region_create();
diff --git a/modules/cairo-solid-pattern.cpp b/modules/cairo-solid-pattern.cpp
index 583da0e..12ad155 100644
--- a/modules/cairo-solid-pattern.cpp
+++ b/modules/cairo-solid-pattern.cpp
@@ -45,12 +45,12 @@ createRGB_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
double red, green, blue;
cairo_pattern_t *pattern;
JSObject *pattern_wrapper;
- if (!gjs_parse_args(context, "createRGB", "fff", argc, argv,
+ if (!gjs_parse_call_args(context, "createRGB", "fff", argv,
"red", &red,
"green", &green,
"blue", &blue))
@@ -63,7 +63,7 @@ createRGB_func(JSContext *context,
pattern_wrapper = gjs_cairo_solid_pattern_from_pattern(context, pattern);
cairo_pattern_destroy(pattern);
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(pattern_wrapper));
+ argv.rval().set(OBJECT_TO_JSVAL(pattern_wrapper));
return JS_TRUE;
}
@@ -73,12 +73,12 @@ createRGBA_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
double red, green, blue, alpha;
cairo_pattern_t *pattern;
JSObject *pattern_wrapper;
- if (!gjs_parse_args(context, "createRGBA", "ffff", argc, argv,
+ if (!gjs_parse_call_args(context, "createRGBA", "ffff", argv,
"red", &red,
"green", &green,
"blue", &blue,
@@ -92,7 +92,7 @@ createRGBA_func(JSContext *context,
pattern_wrapper = gjs_cairo_solid_pattern_from_pattern(context, pattern);
cairo_pattern_destroy(pattern);
- JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(pattern_wrapper));
+ argv.rval().set(OBJECT_TO_JSVAL(pattern_wrapper));
return JS_TRUE;
}
diff --git a/modules/cairo-surface-pattern.cpp b/modules/cairo-surface-pattern.cpp
index 2efbf77..7ffebb2 100644
--- a/modules/cairo-surface-pattern.cpp
+++ b/modules/cairo-surface-pattern.cpp
@@ -38,7 +38,7 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(cairo_surface_pattern)
GJS_NATIVE_CONSTRUCTOR_PRELUDE(cairo_surface_pattern);
- if (!gjs_parse_args(context, "SurfacePattern", "o", argc, argv,
+ if (!gjs_parse_call_args(context, "SurfacePattern", "o", argv,
"surface", &surface_wrapper))
return JS_FALSE;
@@ -79,12 +79,13 @@ setExtend_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
cairo_extend_t extend;
cairo_pattern_t *pattern;
- if (!gjs_parse_args(context, "setExtend", "i", argc, argv,
+ if (!gjs_parse_call_args(context, "setExtend", "i", argv,
"extend", &extend))
return JS_FALSE;
@@ -94,7 +95,7 @@ setExtend_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_pattern_status(pattern), "pattern"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -103,7 +104,9 @@ getExtend_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_extend_t extend;
cairo_pattern_t *pattern;
@@ -118,7 +121,7 @@ getExtend_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_pattern_status(pattern), "pattern"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, INT_TO_JSVAL(extend));
+ rec.rval().setInt32(extend);
return JS_TRUE;
}
@@ -128,12 +131,13 @@ setFilter_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
cairo_filter_t filter;
cairo_pattern_t *pattern;
- if (!gjs_parse_args(context, "setFilter", "i", argc, argv,
+ if (!gjs_parse_call_args(context, "setFilter", "i", argv,
"filter", &filter))
return JS_FALSE;
@@ -143,7 +147,7 @@ setFilter_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_pattern_status(pattern), "pattern"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -152,7 +156,9 @@ getFilter_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_filter_t filter;
cairo_pattern_t *pattern;
@@ -167,7 +173,7 @@ getFilter_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_pattern_status(pattern), "pattern"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, INT_TO_JSVAL(filter));
+ rec.rval().setInt32(filter);
return JS_TRUE;
}
diff --git a/modules/cairo-surface.cpp b/modules/cairo-surface.cpp
index f883322..47b081d 100644
--- a/modules/cairo-surface.cpp
+++ b/modules/cairo-surface.cpp
@@ -62,12 +62,13 @@ writeToPNG_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(context, vp);
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ JSObject *obj = JSVAL_TO_OBJECT(argv.thisv());
+
char *filename;
cairo_surface_t *surface;
- if (!gjs_parse_args(context, "writeToPNG", "s", argc, argv,
+ if (!gjs_parse_call_args(context, "writeToPNG", "s", argv,
"filename", &filename))
return JS_FALSE;
@@ -81,7 +82,7 @@ writeToPNG_func(JSContext *context,
if (!gjs_cairo_check_status(context, cairo_surface_status(surface),
"surface"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -90,7 +91,9 @@ getType_func(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *obj = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *obj = JSVAL_TO_OBJECT(rec.thisv());
+
cairo_surface_t *surface;
cairo_surface_type_t type;
@@ -105,7 +108,7 @@ getType_func(JSContext *context,
"surface"))
return JS_FALSE;
- JS_SET_RVAL(context, vp, INT_TO_JSVAL(type));
+ rec.rval().setInt32(type);
return JS_TRUE;
}
diff --git a/modules/cairo-svg-surface.cpp b/modules/cairo-svg-surface.cpp
index 0f53f23..45b1dc2 100644
--- a/modules/cairo-svg-surface.cpp
+++ b/modules/cairo-svg-surface.cpp
@@ -41,7 +41,7 @@ GJS_NATIVE_CONSTRUCTOR_DECLARE(cairo_svg_surface)
GJS_NATIVE_CONSTRUCTOR_PRELUDE(cairo_svg_surface);
- if (!gjs_parse_args(context, "SVGSurface", "sff", argc, argv,
+ if (!gjs_parse_call_args(context, "SVGSurface", "sff", argv,
"filename", &filename,
"width", &width,
"height", &height))
diff --git a/modules/console.cpp b/modules/console.cpp
index b3d71ff..9a00070 100644
--- a/modules/console.cpp
+++ b/modules/console.cpp
@@ -159,7 +159,8 @@ gjs_console_interact(JSContext *context,
unsigned argc,
jsval *vp)
{
- JSObject *object = JS_THIS_OBJECT(context, vp);
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
+ JSObject *object = JSVAL_TO_OBJECT(rec.thisv());
gboolean eof = FALSE;
jsval result;
JSString *str;
diff --git a/modules/system.cpp b/modules/system.cpp
index 92c5640..81bd9df 100644
--- a/modules/system.cpp
+++ b/modules/system.cpp
@@ -37,13 +37,13 @@ gjs_address_of(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(cx, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
JSObject *target_obj;
JSBool ret;
char *pointer_string;
jsval retval;
- if (!gjs_parse_args(context, "addressOf", "o", argc, argv, "object", &target_obj))
+ if (!gjs_parse_call_args(context, "addressOf", "o", argv, "object", &target_obj))
return JS_FALSE;
pointer_string = g_strdup_printf("%p", target_obj);
@@ -52,7 +52,7 @@ gjs_address_of(JSContext *context,
g_free(pointer_string);
if (ret)
- JS_SET_RVAL(context, vp, retval);
+ argv.rval().set(retval);
return ret;
}
@@ -62,12 +62,12 @@ gjs_refcount(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(cx, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
jsval retval;
JSObject *target_obj;
GObject *obj;
- if (!gjs_parse_args(context, "refcount", "o", argc, argv, "object", &target_obj))
+ if (!gjs_parse_call_args(context, "refcount", "o", argv, "object", &target_obj))
return JS_FALSE;
if (!gjs_typecheck_object(context, target_obj,
@@ -79,7 +79,7 @@ gjs_refcount(JSContext *context,
return JS_FALSE;
retval = INT_TO_JSVAL(obj->ref_count);
- JS_SET_RVAL(context, vp, retval);
+ argv.rval().set(retval);
return JS_TRUE;
}
@@ -88,11 +88,11 @@ gjs_breakpoint(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(cx, vp);
- if (!gjs_parse_args(context, "breakpoint", "", argc, argv))
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ if (!gjs_parse_call_args(context, "breakpoint", "", argv))
return JS_FALSE;
G_BREAKPOINT();
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -101,11 +101,11 @@ gjs_gc(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(cx, vp);
- if (!gjs_parse_args(context, "gc", "", argc, argv))
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
+ if (!gjs_parse_call_args(context, "gc", "", argv))
return JS_FALSE;
JS_GC(JS_GetRuntime(context));
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ argv.rval().set(JSVAL_VOID);
return JS_TRUE;
}
@@ -114,9 +114,9 @@ gjs_exit(JSContext *context,
unsigned argc,
jsval *vp)
{
- jsval *argv = JS_ARGV(cx, vp);
+ JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
gint32 ecode;
- if (!gjs_parse_args(context, "exit", "i", argc, argv, "ecode", &ecode))
+ if (!gjs_parse_call_args(context, "exit", "i", argv, "ecode", &ecode))
return JS_FALSE;
exit(ecode);
return JS_TRUE;
@@ -127,6 +127,7 @@ gjs_clear_date_caches(JSContext *context,
unsigned argc,
jsval *vp)
{
+ JS::CallReceiver rec = JS::CallReceiverFromVp(vp);
JS_BeginRequest(context);
// Workaround for a bug in SpiderMonkey where tzset is not called before
@@ -136,7 +137,7 @@ gjs_clear_date_caches(JSContext *context,
JS_ClearDateCaches(context);
JS_EndRequest(context);
- JS_SET_RVAL(context, vp, JSVAL_VOID);
+ rec.rval().set(JSVAL_VOID);
return JS_TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]