]> git.cworth.org Git - loudgame/blobdiff - loudgame.c
Move code from loudgame_run to new loudgame_fini for clarity
[loudgame] / loudgame.c
index d99a0d2e3677ba039b6bfa950870770e2d64ef9f..f09910f3611aa8e8866879cdec8cff597c870c1f 100644 (file)
@@ -33,11 +33,16 @@ loudgame_quit (loudgame_t *lg, int return_value)
 
     lg->return_value = return_value;
 
-    if (! lm_connection_close (lg->connection, &error))
-       g_print ("An error occurred during lm_connection_close: %s\n",
-                error->message);
-
-    lm_connection_unref (lg->connection);
+    if (lg->connection)
+    {
+       if (! lm_connection_close (lg->connection, &error))
+       {
+           g_print ("An error occurred during lm_connection_close: %s\n",
+                    error->message);
+       }
+       lm_connection_unref (lg->connection);
+       lg->connection = NULL;
+    }
 
     g_main_loop_quit (lg->main_loop);
 }
@@ -232,6 +237,12 @@ loudgame_init (loudgame_t *lg, int argc, char **argv)
     return 0;
 }
 
+static void
+loudgame_fini (loudgame_t *lg)
+{
+    g_main_loop_unref (lg->main_loop);
+}
+
 int
 loudgame_run (loudgame_t *lg)
 {
@@ -239,7 +250,7 @@ loudgame_run (loudgame_t *lg)
 
     g_main_loop_run (lg->main_loop);
 
-    g_main_loop_unref (lg->main_loop);
+    loudgame_fini (lg);
                                                                                 
     return lg->return_value;
 }