[gnome-color-manager] trivial: make GcmDmi a singleton to save a few bytes of writable



commit b27727d7f40e9516ba931d511b89d97dbe96b18d
Author: Richard Hughes <richard hughsie com>
Date:   Mon Feb 22 14:18:51 2010 +0000

    trivial: make GcmDmi a singleton to save a few bytes of writable

 src/gcm-dmi.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/src/gcm-dmi.c b/src/gcm-dmi.c
index 2c4c8db..6740e0b 100644
--- a/src/gcm-dmi.c
+++ b/src/gcm-dmi.c
@@ -63,6 +63,8 @@ enum {
 	PROP_LAST
 };
 
+static gpointer gcm_dmi_object = NULL;
+
 G_DEFINE_TYPE (GcmDmi, gcm_dmi, G_TYPE_OBJECT)
 
 /**
@@ -227,9 +229,13 @@ gcm_dmi_finalize (GObject *object)
 GcmDmi *
 gcm_dmi_new (void)
 {
-	GcmDmi *dmi;
-	dmi = g_object_new (GCM_TYPE_DMI, NULL);
-	return GCM_DMI (dmi);
+	if (gcm_dmi_object != NULL) {
+		g_object_ref (gcm_dmi_object);
+	} else {
+		gcm_dmi_object = g_object_new (GCM_TYPE_DMI, NULL);
+		g_object_add_weak_pointer (gcm_dmi_object, &gcm_dmi_object);
+	}
+	return GCM_DMI (gcm_dmi_object);
 }
 
 /***************************************************************************



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]