summaryrefslogtreecommitdiff
path: root/libpeas/peas-extension-set.c
diff options
context:
space:
mode:
authorGarrett Regier <garrettregier@gmail.com>2014-12-20 10:05:24 -0800
committerGarrett Regier <garrettregier@gmail.com>2014-12-20 10:05:24 -0800
commitf0e1e2df26a59eba6b5882bd6503777337837a53 (patch)
treeda1a2439ff655f8d655bf84f8800332aa632afb1 /libpeas/peas-extension-set.c
parent001fa77065738e1ea105424c3b8b5f8e27c0c178 (diff)
downloadlibpeas-f0e1e2df26a59eba6b5882bd6503777337837a53.tar.gz
Use new GObject private API
Diffstat (limited to 'libpeas/peas-extension-set.c')
-rw-r--r--libpeas/peas-extension-set.c102
1 files changed, 58 insertions, 44 deletions
diff --git a/libpeas/peas-extension-set.c b/libpeas/peas-extension-set.c
index 42049d2..d8535be 100644
--- a/libpeas/peas-extension-set.c
+++ b/libpeas/peas-extension-set.c
@@ -86,8 +86,6 @@
* ]|
**/
-G_DEFINE_TYPE (PeasExtensionSet, peas_extension_set, G_TYPE_OBJECT)
-
struct _PeasExtensionSetPrivate {
PeasEngine *engine;
GType exten_type;
@@ -126,20 +124,28 @@ enum {
static guint signals[LAST_SIGNAL];
static GParamSpec *properties[N_PROPERTIES] = { NULL };
+G_DEFINE_TYPE_WITH_PRIVATE (PeasExtensionSet,
+ peas_extension_set,
+ G_TYPE_OBJECT)
+
+#define GET_PRIV(o) \
+ (peas_extension_set_get_instance_private (o))
+
static void
set_construct_properties (PeasExtensionSet *set,
PeasParameterArray *array)
{
- unsigned i;
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
+ guint i;
- set->priv->n_parameters = array->n_parameters;
+ priv->n_parameters = array->n_parameters;
- set->priv->parameters = g_new0 (GParameter, array->n_parameters);
+ priv->parameters = g_new0 (GParameter, array->n_parameters);
for (i = 0; i < array->n_parameters; i++)
{
- set->priv->parameters[i].name = g_intern_string (array->parameters[i].name);
- g_value_init (&set->priv->parameters[i].value, G_VALUE_TYPE (&array->parameters[i].value));
- g_value_copy (&array->parameters[i].value, &set->priv->parameters[i].value);
+ priv->parameters[i].name = g_intern_string (array->parameters[i].name);
+ g_value_init (&priv->parameters[i].value, G_VALUE_TYPE (&array->parameters[i].value));
+ g_value_copy (&array->parameters[i].value, &priv->parameters[i].value);
}
}
@@ -150,14 +156,15 @@ peas_extension_set_set_property (GObject *object,
GParamSpec *pspec)
{
PeasExtensionSet *set = PEAS_EXTENSION_SET (object);
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
switch (prop_id)
{
case PROP_ENGINE:
- set->priv->engine = g_value_get_object (value);
+ priv->engine = g_value_get_object (value);
break;
case PROP_EXTENSION_TYPE:
- set->priv->exten_type = g_value_get_gtype (value);
+ priv->exten_type = g_value_get_gtype (value);
break;
case PROP_CONSTRUCT_PROPERTIES:
set_construct_properties (set, g_value_get_pointer (value));
@@ -174,14 +181,15 @@ peas_extension_set_get_property (GObject *object,
GParamSpec *pspec)
{
PeasExtensionSet *set = PEAS_EXTENSION_SET (object);
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
switch (prop_id)
{
case PROP_ENGINE:
- g_value_set_object (value, set->priv->engine);
+ g_value_set_object (value, priv->engine);
break;
case PROP_EXTENSION_TYPE:
- g_value_set_gtype (value, set->priv->exten_type);
+ g_value_set_gtype (value, priv->exten_type);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -192,6 +200,7 @@ static void
add_extension (PeasExtensionSet *set,
PeasPluginInfo *info)
{
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
PeasExtension *exten;
ExtensionItem *item;
@@ -199,20 +208,20 @@ add_extension (PeasExtensionSet *set,
if (!peas_plugin_info_is_loaded (info))
return;
- if (!peas_engine_provides_extension (set->priv->engine, info,
- set->priv->exten_type))
+ if (!peas_engine_provides_extension (priv->engine, info,
+ priv->exten_type))
return;
- exten = peas_engine_create_extensionv (set->priv->engine, info,
- set->priv->exten_type,
- set->priv->n_parameters,
- set->priv->parameters);
+ exten = peas_engine_create_extensionv (priv->engine, info,
+ priv->exten_type,
+ priv->n_parameters,
+ priv->parameters);
item = (ExtensionItem *) g_slice_new (ExtensionItem);
item->info = info;
item->exten = exten;
- set->priv->extensions = g_list_prepend (set->priv->extensions, item);
+ priv->extensions = g_list_prepend (priv->extensions, item);
g_signal_emit (set, signals[EXTENSION_ADDED], 0, info, exten);
}
@@ -231,17 +240,18 @@ static void
remove_extension (PeasExtensionSet *set,
PeasPluginInfo *info)
{
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
GList *l;
ExtensionItem *item;
- for (l = set->priv->extensions; l; l = l->next)
+ for (l = priv->extensions; l; l = l->next)
{
item = (ExtensionItem *) l->data;
if (item->info != info)
continue;
remove_extension_item (set, item);
- set->priv->extensions = g_list_delete_link (set->priv->extensions, l);
+ priv->extensions = g_list_delete_link (priv->extensions, l);
return;
}
}
@@ -249,28 +259,28 @@ remove_extension (PeasExtensionSet *set,
static void
peas_extension_set_init (PeasExtensionSet *set)
{
- set->priv = G_TYPE_INSTANCE_GET_PRIVATE (set, PEAS_TYPE_EXTENSION_SET, PeasExtensionSetPrivate);
}
static void
peas_extension_set_constructed (GObject *object)
{
PeasExtensionSet *set = PEAS_EXTENSION_SET (object);
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
GList *plugins, *l;
- if (set->priv->engine == NULL)
- set->priv->engine = peas_engine_get_default ();
+ if (priv->engine == NULL)
+ priv->engine = peas_engine_get_default ();
- g_object_ref (set->priv->engine);
+ g_object_ref (priv->engine);
- plugins = (GList *) peas_engine_get_plugin_list (set->priv->engine);
+ plugins = (GList *) peas_engine_get_plugin_list (priv->engine);
for (l = plugins; l; l = l->next)
add_extension (set, (PeasPluginInfo *) l->data);
- g_signal_connect_object (set->priv->engine, "load-plugin",
+ g_signal_connect_object (priv->engine, "load-plugin",
G_CALLBACK (add_extension), set,
G_CONNECT_AFTER | G_CONNECT_SWAPPED);
- g_signal_connect_object (set->priv->engine, "unload-plugin",
+ g_signal_connect_object (priv->engine, "unload-plugin",
G_CALLBACK (remove_extension), set,
G_CONNECT_SWAPPED);
@@ -281,27 +291,28 @@ static void
peas_extension_set_dispose (GObject *object)
{
PeasExtensionSet *set = PEAS_EXTENSION_SET (object);
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
GList *l;
- if (set->priv->extensions != NULL)
+ if (priv->extensions != NULL)
{
- for (l = set->priv->extensions; l != NULL; l = l->next)
+ for (l = priv->extensions; l != NULL; l = l->next)
remove_extension_item (set, (ExtensionItem *) l->data);
- g_list_free (set->priv->extensions);
- set->priv->extensions = NULL;
+ g_list_free (priv->extensions);
+ priv->extensions = NULL;
}
- if (set->priv->parameters != NULL)
+ if (priv->parameters != NULL)
{
- while (set->priv->n_parameters-- > 0)
- g_value_unset (&set->priv->parameters[set->priv->n_parameters].value);
+ while (priv->n_parameters-- > 0)
+ g_value_unset (&priv->parameters[priv->n_parameters].value);
- g_free (set->priv->parameters);
- set->priv->parameters = NULL;
+ g_free (priv->parameters);
+ priv->parameters = NULL;
}
- g_clear_object (&set->priv->engine);
+ g_clear_object (&priv->engine);
}
static gboolean
@@ -309,11 +320,12 @@ peas_extension_set_call_real (PeasExtensionSet *set,
const gchar *method_name,
GIArgument *args)
{
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
gboolean ret = TRUE;
GList *l;
GIArgument dummy;
- for (l = set->priv->extensions; l; l = l->next)
+ for (l = priv->extensions; l; l = l->next)
{
ExtensionItem *item = (ExtensionItem *) l->data;
ret = peas_extension_callv (item->exten, method_name, args, &dummy) && ret;
@@ -417,7 +429,6 @@ peas_extension_set_class_init (PeasExtensionSetClass *klass)
G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, N_PROPERTIES, properties);
- g_type_class_add_private (klass, sizeof (PeasExtensionSetPrivate));
}
/**
@@ -434,12 +445,13 @@ PeasExtension *
peas_extension_set_get_extension (PeasExtensionSet *set,
PeasPluginInfo *info)
{
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
GList *l;
g_return_val_if_fail (PEAS_IS_EXTENSION_SET (set), NULL);
g_return_val_if_fail (info != NULL, NULL);
- for (l = set->priv->extensions; l != NULL; l = l->next)
+ for (l = priv->extensions; l != NULL; l = l->next)
{
ExtensionItem *item = l->data;
@@ -501,6 +513,7 @@ peas_extension_set_call_valist (PeasExtensionSet *set,
const gchar *method_name,
va_list va_args)
{
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
GICallableInfo *callable_info;
GIArgument *args;
gint n_args;
@@ -508,12 +521,12 @@ peas_extension_set_call_valist (PeasExtensionSet *set,
g_return_val_if_fail (PEAS_IS_EXTENSION_SET (set), FALSE);
g_return_val_if_fail (method_name != NULL, FALSE);
- callable_info = peas_gi_get_method_info (set->priv->exten_type, method_name);
+ callable_info = peas_gi_get_method_info (priv->exten_type, method_name);
if (callable_info == NULL)
{
g_warning ("Method '%s.%s' was not found",
- g_type_name (set->priv->exten_type), method_name);
+ g_type_name (priv->exten_type), method_name);
return FALSE;
}
@@ -571,12 +584,13 @@ peas_extension_set_foreach (PeasExtensionSet *set,
PeasExtensionSetForeachFunc func,
gpointer data)
{
+ PeasExtensionSetPrivate *priv = GET_PRIV (set);
GList *l;
g_return_if_fail (PEAS_IS_EXTENSION_SET (set));
g_return_if_fail (func != NULL);
- for (l = set->priv->extensions; l; l = l->next)
+ for (l = priv->extensions; l; l = l->next)
{
ExtensionItem *item = (ExtensionItem *) l->data;