[Xfce4-commits] <tumbler:master> Release lifecycle manager during early exit.

Nick Schermer noreply at xfce.org
Sat Dec 8 12:22:03 CET 2012


Updating branch refs/heads/master
         to 27fb36bca2d3a94cd3d486bcd7117f07f1abe3d0 (commit)
       from c8ad987bcf1639909c8545efcfc7acc9dec5928b (commit)

commit 27fb36bca2d3a94cd3d486bcd7117f07f1abe3d0
Author: Nick Schermer <nick at xfce.org>
Date:   Sat Dec 8 11:49:39 2012 +0100

    Release lifecycle manager during early exit.

 tumblerd/main.c                      |   43 ++++++++--------------------------
 tumblerd/tumbler-lifecycle-manager.c |    4 +--
 2 files changed, 11 insertions(+), 36 deletions(-)

diff --git a/tumblerd/main.c b/tumblerd/main.c
index 8ac93b8..046c13f 100644
--- a/tumblerd/main.c
+++ b/tumblerd/main.c
@@ -70,6 +70,7 @@ main (int    argc,
   GList                   *thumbnailers;
   GList                   *lp;
   GList                   *tp;
+  gint                     retval = EXIT_SUCCESS;
 
   /* set the program name */
   g_set_prgname (G_LOG_DOMAIN);
@@ -162,14 +163,9 @@ main (int    argc,
                  error->message);
       g_error_free (error);
 
-      g_object_unref (service);
-      g_object_unref (manager);
-      g_object_unref (cache_service);
-      g_object_unref (registry);
-
-      dbus_g_connection_unref (connection);
-
-      return EXIT_FAILURE;
+      /* something failed */
+      retval = EXIT_FAILURE;
+      goto exit_tumbler;
     }
 
   /* try to start the service and exit if that fails */
@@ -178,15 +174,8 @@ main (int    argc,
       g_warning (_("Failed to start the thumbnail cache service: %s"), error->message);
       g_error_free (error);
 
-      g_object_unref (service);
-      g_object_unref (manager);
-      g_object_unref (cache_service);
-      g_object_unref (registry);
-
-      dbus_g_connection_unref (connection);
-
       /* service already running, exit gracefully to not break clients */
-      return EXIT_SUCCESS;
+      goto exit_tumbler;
     }
 
   /* try to start the service and exit if that fails */
@@ -195,15 +184,8 @@ main (int    argc,
       g_warning (_("Failed to start the thumbnailer manager: %s"), error->message);
       g_error_free (error);
 
-      g_object_unref (service);
-      g_object_unref (manager);
-      g_object_unref (cache_service);
-      g_object_unref (registry);
-
-      dbus_g_connection_unref (connection);
-
       /* service already running, exit gracefully to not break clients */
-      return EXIT_SUCCESS;
+      goto exit_tumbler;
     }
 
   /* try to start the service and exit if that fails */
@@ -212,15 +194,8 @@ main (int    argc,
       g_warning (_("Failed to start the thumbnailer service: %s"), error->message);
       g_error_free (error);
 
-      g_object_unref (service);
-      g_object_unref (manager);
-      g_object_unref (cache_service);
-      g_object_unref (registry);
-
-      dbus_g_connection_unref (connection);
-
       /* service already running, exit gracefully to not break clients */
-      return EXIT_SUCCESS;
+      goto exit_tumbler;
     }
 
   /* create a new main loop */
@@ -236,6 +211,8 @@ main (int    argc,
   /* enter the main loop, thereby making the tumbler service available */
   g_main_loop_run (main_loop);
 
+  exit_tumbler:
+
   /* shut our services down and release all objects */
   g_object_unref (service);
   g_object_unref (manager);
@@ -247,5 +224,5 @@ main (int    argc,
   dbus_g_connection_unref (connection);
 
   /* we're done, all fine */
-  return EXIT_SUCCESS;
+  return retval;
 }
diff --git a/tumblerd/tumbler-lifecycle-manager.c b/tumblerd/tumbler-lifecycle-manager.c
index ee4ae10..4df8118 100644
--- a/tumblerd/tumbler-lifecycle-manager.c
+++ b/tumblerd/tumbler-lifecycle-manager.c
@@ -115,11 +115,9 @@ tumbler_lifecycle_manager_init (TumblerLifecycleManager *manager)
 static void
 tumbler_lifecycle_manager_finalize (GObject *object)
 {
-#if !GLIB_CHECK_VERSION (2, 32, 0)
   TumblerLifecycleManager *manager = TUMBLER_LIFECYCLE_MANAGER (object);
-#endif
 
-  tumbler_mutex_free (TUMBLER_LIFECYCLE_MANAGER (object)->lock);
+  tumbler_mutex_free (manager->lock);
 
   (*G_OBJECT_CLASS (tumbler_lifecycle_manager_parent_class)->finalize) (object);
 }


More information about the Xfce4-commits mailing list