[tracker/miner-fs-initable-iface] tracker-miner-rss: Propagate error in constructor



commit c3d120a23db90071b69a1c61e49449c41eb153a1
Author: Aleksander Morgado <aleksander lanedo com>
Date:   Tue Feb 1 13:16:06 2011 +0100

    tracker-miner-rss: Propagate error in constructor

 src/miners/rss/tracker-main.c      |    6 ++++--
 src/miners/rss/tracker-miner-rss.c |   21 ++++++---------------
 src/miners/rss/tracker-miner-rss.h |    2 +-
 3 files changed, 11 insertions(+), 18 deletions(-)
---
diff --git a/src/miners/rss/tracker-main.c b/src/miners/rss/tracker-main.c
index 073d092..58f62bb 100644
--- a/src/miners/rss/tracker-main.c
+++ b/src/miners/rss/tracker-main.c
@@ -47,6 +47,7 @@ main (int argc, char **argv)
 	GMainLoop *loop;
 	GOptionContext *context;
 	TrackerMinerRSS *miner;
+	GError *error = NULL;
 
 	g_type_init ();
 	g_thread_init (NULL);
@@ -70,9 +71,10 @@ main (int argc, char **argv)
 	g_print ("Starting log:\n  File:'%s'\n", log_filename);
 	g_free (log_filename);
 
-	miner = tracker_miner_rss_new ();
+	miner = tracker_miner_rss_new (&error);
 	if (!miner) {
-		g_printerr ("Cannot create new RSS miner, exiting...\n");
+		g_printerr ("Cannot create new RSS miner: '%s', exiting...\n",
+		            error ? error->message : "unknown error");
 		return -1;
 	}
 
diff --git a/src/miners/rss/tracker-miner-rss.c b/src/miners/rss/tracker-miner-rss.c
index 91e3f24..f1aa85e 100644
--- a/src/miners/rss/tracker-miner-rss.c
+++ b/src/miners/rss/tracker-miner-rss.c
@@ -610,20 +610,11 @@ miner_resumed (TrackerMiner *miner)
 }
 
 TrackerMinerRSS *
-tracker_miner_rss_new (void)
+tracker_miner_rss_new (GError **error)
 {
-	GError *error = NULL;
-	TrackerMinerRSS *miner;
-
-	miner = g_initable_new (TRACKER_TYPE_MINER_RSS,
-	                        NULL,
-	                        &error,
-	                        "name", "RSS",
-	                        NULL);
-	if (!miner) {
-		g_critical ("Couldn't create new TrackerMinerRSS object: '%s'",
-		            error ? error->message : "Unknown error");
-	}
-
-	return miner;
+	return g_initable_new (TRACKER_TYPE_MINER_RSS,
+	                       NULL,
+	                       error,
+	                       "name", "RSS",
+	                       NULL);
 }
diff --git a/src/miners/rss/tracker-miner-rss.h b/src/miners/rss/tracker-miner-rss.h
index 73470b4..c620a9b 100644
--- a/src/miners/rss/tracker-miner-rss.h
+++ b/src/miners/rss/tracker-miner-rss.h
@@ -46,7 +46,7 @@ struct _TrackerMinerRSSClass {
 };
 
 GType            tracker_miner_rss_get_type (void) G_GNUC_CONST;
-TrackerMinerRSS *tracker_miner_rss_new      (void);
+TrackerMinerRSS *tracker_miner_rss_new      (GError **error);
 
 G_END_DECLS
 



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