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



commit 6dcd2f19fe31748340c3a8320cfec345c112d539
Author: Richard Hughes <richard hughsie com>
Date:   Mon Feb 22 14:17:35 2010 +0000

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

 src/gcm-xserver.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/src/gcm-xserver.c b/src/gcm-xserver.c
index 491112b..c895dc6 100644
--- a/src/gcm-xserver.c
+++ b/src/gcm-xserver.c
@@ -66,6 +66,8 @@ enum {
 	PROP_LAST
 };
 
+static gpointer gcm_xserver_object = NULL;
+
 G_DEFINE_TYPE (GcmXserver, gcm_xserver, G_TYPE_OBJECT)
 
 /**
@@ -595,8 +597,12 @@ gcm_xserver_finalize (GObject *object)
 GcmXserver *
 gcm_xserver_new (void)
 {
-	GcmXserver *xserver;
-	xserver = g_object_new (GCM_TYPE_XSERVER, NULL);
-	return GCM_XSERVER (xserver);
+	if (gcm_xserver_object != NULL) {
+		g_object_ref (gcm_xserver_object);
+	} else {
+		gcm_xserver_object = g_object_new (GCM_TYPE_XSERVER, NULL);
+		g_object_add_weak_pointer (gcm_xserver_object, &gcm_xserver_object);
+	}
+	return GCM_XSERVER (gcm_xserver_object);
 }
 



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