/* Check to see if jsval passed in is another Boxed object of the same, * and if so, retrieves the Boxed private structure for it. */ static JSBool boxed_get_copy_source(JSContext *context, Boxed *priv, jsval value, Boxed **source_priv_out) { Boxed *source_priv; if (!JSVAL_IS_OBJECT(value)) return JS_FALSE; if (!priv_from_js_with_typecheck(context, JSVAL_TO_OBJECT(value), &source_priv)) return JS_FALSE; if (!g_base_info_equal((GIBaseInfo*) priv->info, (GIBaseInfo*) source_priv->info)) return JS_FALSE; *source_priv_out = source_priv; return JS_TRUE; }
static JSBool to_string_func(JSContext *context, unsigned argc, jsval *vp) { JSObject *obj = JS_THIS_OBJECT(context, vp); Boxed *priv; JSBool ret = JS_FALSE; jsval retval; if (!priv_from_js_with_typecheck(context, obj, &priv)) goto out; if (!_gjs_proxy_to_string_func(context, obj, "boxed", (GIBaseInfo*)priv->info, priv->gtype, priv->gboxed, &retval)) goto out; ret = JS_TRUE; JS_SET_RVAL(context, vp, retval); out: return ret; }
static JSBool to_string_func(JSContext *context, unsigned argc, jsval *vp) { JS::CallReceiver rec = JS::CallReceiverFromVp(vp); JSObject *obj = JSVAL_TO_OBJECT(rec.thisv()); FundamentalInstance *priv; JSBool ret = JS_FALSE; jsval retval; if (!priv_from_js_with_typecheck(context, obj, &priv)) goto out; if (!priv->prototype) { Fundamental *proto_priv = (Fundamental *) priv; if (!_gjs_proxy_to_string_func(context, obj, "fundamental", (GIBaseInfo *) proto_priv->info, proto_priv->gtype, proto_priv->gfundamental, &retval)) goto out; } else { if (!_gjs_proxy_to_string_func(context, obj, "fundamental", (GIBaseInfo *) priv->prototype->info, priv->prototype->gtype, priv->gfundamental, &retval)) goto out; } ret = JS_TRUE; rec.rval().set(retval); out: return ret; }