[tracker/miner-fs-initable-iface: 7/8] tracker-miner-fs: Store parent's initable iface during iface initialization



commit 3aadad5343180cb96732b892f2c256bac9ce9753
Author: Aleksander Morgado <aleksander lanedo com>
Date:   Tue Feb 1 11:54:48 2011 +0100

    tracker-miner-fs: Store parent's initable iface during iface initialization
    
    ...otherwise we won't be able to chain up with exact parent's iface properly

 src/libtracker-miner/tracker-miner-object.h |    2 --
 src/miners/fs/tracker-miner-applications.c  |    7 ++++---
 src/miners/fs/tracker-miner-files.c         |    7 ++++---
 3 files changed, 8 insertions(+), 8 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-object.h b/src/libtracker-miner/tracker-miner-object.h
index 507ff6e..fb3d760 100644
--- a/src/libtracker-miner/tracker-miner-object.h
+++ b/src/libtracker-miner/tracker-miner-object.h
@@ -38,8 +38,6 @@ G_BEGIN_DECLS
 #define TRACKER_IS_MINER_CLASS(c)  (G_TYPE_CHECK_CLASS_TYPE ((c),    TRACKER_TYPE_MINER))
 #define TRACKER_MINER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o),  TRACKER_TYPE_MINER, TrackerMinerClass))
 
-#define TRACKER_MINER_GET_INITABLE_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), G_TYPE_INITABLE, GInitable))
-
 #define TRACKER_MINER_ERROR_DOMAIN "TrackerMiner"
 #define TRACKER_MINER_ERROR        tracker_miner_error_quark()
 
diff --git a/src/miners/fs/tracker-miner-applications.c b/src/miners/fs/tracker-miner-applications.c
index f4fbf05..f888be6 100644
--- a/src/miners/fs/tracker-miner-applications.c
+++ b/src/miners/fs/tracker-miner-applications.c
@@ -70,6 +70,8 @@ struct ProcessApplicationData {
 	gchar *type;
 };
 
+static GInitableIface* miner_applications_initable_parent_iface;
+
 G_DEFINE_TYPE_WITH_CODE (TrackerMinerApplications, tracker_miner_applications, TRACKER_TYPE_MINER_FS,
                          G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE,
                                                 miner_applications_initable_iface_init));
@@ -99,6 +101,7 @@ tracker_miner_applications_init (TrackerMinerApplications *ma)
 static void
 miner_applications_initable_iface_init (GInitableIface *iface)
 {
+	miner_applications_initable_parent_iface = g_type_interface_peek_parent (iface);
 	iface->init = miner_applications_initable_init;
 }
 
@@ -107,7 +110,6 @@ miner_applications_initable_init (GInitable     *initable,
                                   GCancellable  *cancellable,
                                   GError       **error)
 {
-	GInitableIface *parent_iface;
 	TrackerMinerApplications *ma;
 	TrackerMinerFS *fs;
 	GFile *file;
@@ -116,8 +118,7 @@ miner_applications_initable_init (GInitable     *initable,
 	fs = TRACKER_MINER_FS (initable);
 
 	/* Chain up parent's initable callback before calling child's one */
-	parent_iface = g_type_interface_peek_parent (TRACKER_MINER_GET_INITABLE_IFACE (initable));
-	if (!parent_iface->init (initable, cancellable, error)) {
+	if (!miner_applications_initable_parent_iface->init (initable, cancellable, error)) {
 		return FALSE;
 	}
 
diff --git a/src/miners/fs/tracker-miner-files.c b/src/miners/fs/tracker-miner-files.c
index b855236..77bd09a 100644
--- a/src/miners/fs/tracker-miner-files.c
+++ b/src/miners/fs/tracker-miner-files.c
@@ -244,6 +244,8 @@ static void        miner_files_add_removable_or_optical_directory (TrackerMinerF
                                                                    const gchar       *mount_path,
                                                                    const gchar       *uuid);
 
+static GInitableIface* miner_files_initable_parent_iface;
+
 G_DEFINE_TYPE_WITH_CODE (TrackerMinerFiles, tracker_miner_files, TRACKER_TYPE_MINER_FS,
                          G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE,
                                                 miner_files_initable_iface_init));
@@ -324,6 +326,7 @@ tracker_miner_files_init (TrackerMinerFiles *mf)
 static void
 miner_files_initable_iface_init (GInitableIface *iface)
 {
+	miner_files_initable_parent_iface = g_type_interface_peek_parent (iface);
 	iface->init = miner_files_initable_init;
 }
 
@@ -332,7 +335,6 @@ miner_files_initable_init (GInitable     *initable,
                            GCancellable  *cancellable,
                            GError       **error)
 {
-	GInitableIface *parent_iface;
 	TrackerMinerFiles *mf;
 	TrackerMinerFS *fs;
 	GSList *mounts = NULL;
@@ -343,8 +345,7 @@ miner_files_initable_init (GInitable     *initable,
 	fs = TRACKER_MINER_FS (initable);
 
 	/* Chain up parent's initable callback before calling child's one */
-	parent_iface = g_type_interface_peek_parent (TRACKER_MINER_GET_INITABLE_IFACE (initable));
-	if (!parent_iface->init (initable, cancellable, error)) {
+	if (!miner_files_initable_parent_iface->init (initable, cancellable, error)) {
 		return FALSE;
 	}
 



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