[gnome-photos] base-manager: Drop the priv pointer
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] base-manager: Drop the priv pointer
- Date: Thu, 14 Apr 2016 07:48:37 +0000 (UTC)
commit fd45056deb9c0229739d190bdcb41cb308652d4f
Author: Debarshi Ray <debarshir gnome org>
Date: Thu Apr 14 09:08:03 2016 +0200
base-manager: Drop the priv pointer
The current GObject recommendation is to use the generated
get_instance_private function instead of a separate priv pointer in the
instance struct. The saves one pointer per class in the heirarchy
multiplied by the number of instances of the type, and the function is
fast enough.
src/photos-base-manager.c | 68 +++++++++++++++++++++++++++++++++-----------
src/photos-base-manager.h | 1 -
2 files changed, 51 insertions(+), 18 deletions(-)
---
diff --git a/src/photos-base-manager.c b/src/photos-base-manager.c
index 6060be7..0cd249b 100644
--- a/src/photos-base-manager.c
+++ b/src/photos-base-manager.c
@@ -64,15 +64,18 @@ G_DEFINE_TYPE_WITH_PRIVATE (PhotosBaseManager, photos_base_manager, G_TYPE_OBJEC
static void
photos_base_manager_default_add_object (PhotosBaseManager *self, GObject *object)
{
+ PhotosBaseManagerPrivate *priv;
GObject *old_object;
const gchar *id;
+ priv = photos_base_manager_get_instance_private (self);
+
id = photos_filterable_get_id (PHOTOS_FILTERABLE (object));
old_object = photos_base_manager_get_object_by_id (self, id);
if (old_object != NULL)
return;
- g_hash_table_insert (self->priv->objects, g_strdup (id), g_object_ref (object));
+ g_hash_table_insert (priv->objects, g_strdup (id), g_object_ref (object));
g_signal_emit (self, signals[OBJECT_ADDED], 0, object);
}
@@ -94,14 +97,17 @@ photos_base_manager_default_get_where (PhotosBaseManager *self, gint flags)
static void
photos_base_manager_default_remove_object_by_id (PhotosBaseManager *self, const gchar *id)
{
+ PhotosBaseManagerPrivate *priv;
GObject *object;
+ priv = photos_base_manager_get_instance_private (self);
+
object = photos_base_manager_get_object_by_id (self, id);
if (object == NULL)
return;
g_object_ref (object);
- g_hash_table_remove (self->priv->objects, id);
+ g_hash_table_remove (priv->objects, id);
g_signal_emit (self, signals[OBJECT_REMOVED], 0, object);
g_object_unref (object);
}
@@ -110,7 +116,9 @@ photos_base_manager_default_remove_object_by_id (PhotosBaseManager *self, const
static gboolean
photos_base_manager_default_set_active_object (PhotosBaseManager *self, GObject *object)
{
- PhotosBaseManagerPrivate *priv = self->priv;
+ PhotosBaseManagerPrivate *priv;
+
+ priv = photos_base_manager_get_instance_private (self);
if (object == priv->active_object)
return FALSE;
@@ -130,7 +138,9 @@ static void
photos_base_manager_dispose (GObject *object)
{
PhotosBaseManager *self = PHOTOS_BASE_MANAGER (object);
- PhotosBaseManagerPrivate *priv = self->priv;
+ PhotosBaseManagerPrivate *priv;
+
+ priv = photos_base_manager_get_instance_private (self);
if (priv->objects != NULL)
{
@@ -148,7 +158,9 @@ static void
photos_base_manager_finalize (GObject *object)
{
PhotosBaseManager *self = PHOTOS_BASE_MANAGER (object);
- PhotosBaseManagerPrivate *priv = self->priv;
+ PhotosBaseManagerPrivate *priv;
+
+ priv = photos_base_manager_get_instance_private (self);
g_free (priv->action_id);
g_free (priv->title);
@@ -161,7 +173,9 @@ static void
photos_base_manager_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
PhotosBaseManager *self = PHOTOS_BASE_MANAGER (object);
- PhotosBaseManagerPrivate *priv = self->priv;
+ PhotosBaseManagerPrivate *priv;
+
+ priv = photos_base_manager_get_instance_private (self);
switch (prop_id)
{
@@ -185,9 +199,7 @@ photos_base_manager_init (PhotosBaseManager *self)
{
PhotosBaseManagerPrivate *priv;
- self->priv = photos_base_manager_get_instance_private (self);
- priv = self->priv;
-
+ priv = photos_base_manager_get_instance_private (self);
priv->objects = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
}
@@ -277,7 +289,9 @@ photos_base_manager_add_object (PhotosBaseManager *self, GObject *object)
void
photos_base_manager_clear (PhotosBaseManager *self)
{
- PhotosBaseManagerPrivate *priv = self->priv;
+ PhotosBaseManagerPrivate *priv;
+
+ priv = photos_base_manager_get_instance_private (self);
g_hash_table_remove_all (priv->objects);
g_clear_object (&priv->active_object);
@@ -288,20 +302,27 @@ photos_base_manager_clear (PhotosBaseManager *self)
const gchar *
photos_base_manager_get_action_id (PhotosBaseManager *self)
{
- return self->priv->action_id;
+ PhotosBaseManagerPrivate *priv;
+
+ priv = photos_base_manager_get_instance_private (self);
+ return priv->action_id;
}
GObject *
photos_base_manager_get_active_object (PhotosBaseManager *self)
{
- return self->priv->active_object;
+ PhotosBaseManagerPrivate *priv;
+
+ priv = photos_base_manager_get_instance_private (self);
+ return priv->active_object;
}
gchar *
photos_base_manager_get_all_filter (PhotosBaseManager *self)
{
+ PhotosBaseManagerPrivate *priv;
GList *l;
GList *values;
const gchar *blank = "(true)";
@@ -311,7 +332,9 @@ photos_base_manager_get_all_filter (PhotosBaseManager *self)
guint i;
guint length;
- values = g_hash_table_get_values (self->priv->objects);
+ priv = photos_base_manager_get_instance_private (self);
+
+ values = g_hash_table_get_values (priv->objects);
length = g_list_length (values);
strv = (gchar **) g_malloc0_n (length + 1, sizeof (gchar *));
@@ -362,12 +385,15 @@ photos_base_manager_get_filter (PhotosBaseManager *self, gint flags)
GObject *
photos_base_manager_get_object_by_id (PhotosBaseManager *self, const gchar *id)
{
+ PhotosBaseManagerPrivate *priv;
GObject *ret_val = NULL;
+ priv = photos_base_manager_get_instance_private (self);
+
if (id == NULL)
goto out;
- ret_val = g_hash_table_lookup (self->priv->objects, id);
+ ret_val = g_hash_table_lookup (priv->objects, id);
out:
return ret_val;
@@ -377,16 +403,21 @@ photos_base_manager_get_object_by_id (PhotosBaseManager *self, const gchar *id)
GHashTable *
photos_base_manager_get_objects (PhotosBaseManager *self)
{
- return self->priv->objects;
+ PhotosBaseManagerPrivate *priv;
+
+ priv = photos_base_manager_get_instance_private (self);
+ return priv->objects;
}
guint
photos_base_manager_get_objects_count (PhotosBaseManager *self)
{
+ PhotosBaseManagerPrivate *priv;
guint count;
- count = g_hash_table_size (self->priv->objects);
+ priv = photos_base_manager_get_instance_private (self);
+ count = g_hash_table_size (priv->objects);
return count;
}
@@ -394,7 +425,10 @@ photos_base_manager_get_objects_count (PhotosBaseManager *self)
const gchar *
photos_base_manager_get_title (PhotosBaseManager *self)
{
- return self->priv->title;
+ PhotosBaseManagerPrivate *priv;
+
+ priv = photos_base_manager_get_instance_private (self);
+ return priv->title;
}
diff --git a/src/photos-base-manager.h b/src/photos-base-manager.h
index d2586f9..143087f 100644
--- a/src/photos-base-manager.h
+++ b/src/photos-base-manager.h
@@ -58,7 +58,6 @@ typedef struct _PhotosBaseManagerPrivate PhotosBaseManagerPrivate;
struct _PhotosBaseManager
{
GObject parent_instance;
- PhotosBaseManagerPrivate *priv;
};
struct _PhotosBaseManagerClass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]