]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blobdiff - src/x-server.c
Load all users only when really needed
[sojka/lightdm.git] / src / x-server.c
index 10ba903a3b2e2f3140e32bc3b931b428bfde1d35..1073841e28d42012222248415fa2c97800147336 100644 (file)
@@ -21,9 +21,6 @@ struct XServerPrivate
     /* Host running the server */
     gchar *hostname;
 
-    /* Display number */
-    guint number;
-
     /* Cached server address */
     gchar *address;
 
@@ -53,20 +50,11 @@ x_server_get_hostname (XServer *server)
     return server->priv->hostname;
 }
 
-void
-x_server_set_display_number (XServer *server, guint number)
-{
-    g_return_if_fail (server != NULL);
-    server->priv->number = number;
-    g_free (server->priv->address);
-    server->priv->address = NULL;
-}
-
 guint
 x_server_get_display_number (XServer *server)
 {
     g_return_val_if_fail (server != NULL, 0);
-    return server->priv->number;
+    return X_SERVER_GET_CLASS (server)->get_display_number (server);
 }
 
 const gchar *
@@ -77,9 +65,9 @@ x_server_get_address (XServer *server)
     if (!server->priv->address)
     {
         if (server->priv->hostname)
-            server->priv->address = g_strdup_printf("%s:%d", server->priv->hostname, server->priv->number);
+            server->priv->address = g_strdup_printf("%s:%d", server->priv->hostname, x_server_get_display_number (server));
         else
-            server->priv->address = g_strdup_printf(":%d", server->priv->number);
+            server->priv->address = g_strdup_printf(":%d", x_server_get_display_number (server));
     }
 
     return server->priv->address;
@@ -90,12 +78,9 @@ x_server_set_authority (XServer *server, XAuthority *authority)
 {
     g_return_if_fail (server != NULL);
 
-    if (server->priv->authority)
-        g_object_unref (server->priv->authority);
+    g_clear_object (&server->priv->authority);
     if (authority)
         server->priv->authority = g_object_ref (authority);
-    else
-        server->priv->authority = NULL;
 }
 
 XAuthority *
@@ -204,14 +189,11 @@ x_server_init (XServer *server)
 static void
 x_server_finalize (GObject *object)
 {
-    XServer *self;
-
-    self = X_SERVER (object);
+    XServer *self = X_SERVER (object);
 
     g_free (self->priv->hostname);
     g_free (self->priv->address);
-    if (self->priv->authority)
-        g_object_unref (self->priv->authority);
+    g_clear_object (&self->priv->authority);
     if (self->priv->connection)
         xcb_disconnect (self->priv->connection);