static void peas_extension_gjs_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { PeasExtensionGjs *gexten = PEAS_EXTENSION_GJS (object); gchar *prop_name; jsval js_value; prop_name = convert_property_name (g_param_spec_get_name (pspec)); if (!JS_GetProperty (gexten->js_context, gexten->js_object, prop_name, &js_value)) { g_warning ("Error: failed to get property '%s'", prop_name); } else if (!gjs_value_to_g_value (gexten->js_context, js_value, value)) { g_warning ("Error: failed to convert jsval to " "GValue for property '%s'", prop_name); } g_free (prop_name); }
static void peas_extension_seed_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { PeasExtensionSeed *sexten = PEAS_EXTENSION_SEED (object); SeedValue seed_value; SeedException exc = NULL; gchar *prop_name; /* Don't add properties as they could shadow the instance's */ seed_value = seed_value_from_gvalue (sexten->js_context, (GValue *) value, &exc); if (exc != NULL) { gchar *exc_string; exc_string = seed_exception_to_string (sexten->js_context, exc); g_warning ("Seed Exception: %s", exc_string); g_free (exc_string); return; } prop_name = convert_property_name (pspec->name); seed_object_set_property (sexten->js_context, sexten->js_object, prop_name, seed_value); g_free (prop_name); }