[tracker/wip/carlosg/init-vtab-on-writable-iface: 2/2] libtracker-data: Pass virtual table data on TrackerDBManager construction
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/init-vtab-on-writable-iface: 2/2] libtracker-data: Pass virtual table data on TrackerDBManager construction
- Date: Thu, 2 May 2019 12:35:47 +0000 (UTC)
commit fdd4bcc39910f5db6bc9ca7911c1553324e6b955
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu May 2 14:26:15 2019 +0200
libtracker-data: Pass virtual table data on TrackerDBManager construction
There are paths where the TrackerDBManager may create the writable interface
early within tracker_db_manager_new(), setting the vtab data later will
work for database interfaces created later on, but not for the already
created ones.
Pass the vtab data as (yet...) another argument to tracker_db_manager_new()
so it is available anytime for the interfaces that will be later created.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1683903
src/libtracker-data/tracker-data-manager.c | 7 +------
src/libtracker-data/tracker-db-manager.c | 9 ++-------
src/libtracker-data/tracker-db-manager.h | 4 +---
src/tracker/tracker-reset.c | 1 +
4 files changed, 5 insertions(+), 16 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index b80cf8535..116b1d4a9 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -4201,15 +4201,13 @@ tracker_data_manager_initable_init (GInitable *initable,
manager->update_cache_size,
busy_callback, manager, "",
G_OBJECT (manager),
+ manager->ontologies,
&internal_error);
if (!manager->db_manager) {
g_propagate_error (error, internal_error);
return FALSE;
}
- tracker_db_manager_set_vtab_user_data (manager->db_manager,
- manager->ontologies);
-
manager->first_time_index = is_first_time_index;
tracker_data_manager_update_status (manager, "Initializing data manager");
@@ -4801,9 +4799,6 @@ tracker_data_manager_initable_init (GInitable *initable,
}
}
- tracker_db_manager_set_vtab_user_data (manager->db_manager,
- manager->ontologies);
-
skip_ontology_check:
#ifndef DISABLE_JOURNAL
diff --git a/src/libtracker-data/tracker-db-manager.c b/src/libtracker-data/tracker-db-manager.c
index 09cb94b5b..556bea39d 100644
--- a/src/libtracker-data/tracker-db-manager.c
+++ b/src/libtracker-data/tracker-db-manager.c
@@ -586,6 +586,7 @@ tracker_db_manager_new (TrackerDBManagerFlags flags,
gpointer busy_user_data,
const gchar *busy_operation,
GObject *iface_data,
+ gpointer vtab_data,
GError **error)
{
TrackerDBManager *db_manager;
@@ -605,6 +606,7 @@ tracker_db_manager_new (TrackerDBManagerFlags flags,
}
db_manager = g_new0 (TrackerDBManager, 1);
+ db_manager->vtab_data = vtab_data;
/* First set defaults for return values */
if (first_time) {
@@ -1263,10 +1265,3 @@ tracker_db_manager_check_perform_vacuum (TrackerDBManager *db_manager)
iface = tracker_db_manager_get_writable_db_interface (db_manager);
tracker_db_interface_execute_query (iface, NULL, "VACUUM");
}
-
-void
-tracker_db_manager_set_vtab_user_data (TrackerDBManager *db_manager,
- gpointer user_data)
-{
- db_manager->vtab_data = user_data;
-}
diff --git a/src/libtracker-data/tracker-db-manager.h b/src/libtracker-data/tracker-db-manager.h
index 63d7dc546..432a39810 100644
--- a/src/libtracker-data/tracker-db-manager.h
+++ b/src/libtracker-data/tracker-db-manager.h
@@ -55,6 +55,7 @@ TrackerDBManager *tracker_db_manager_new (TrackerDBManagerF
gpointer busy_user_data,
const gchar *busy_operation,
GObject *iface_data,
+ gpointer vtab_data,
GError **error);
void tracker_db_manager_free (TrackerDBManager *db_manager);
void tracker_db_manager_remove_all (TrackerDBManager *db_manager);
@@ -95,9 +96,6 @@ void tracker_db_manager_tokenizer_update (TrackerDBManager
void tracker_db_manager_check_perform_vacuum (TrackerDBManager *db_manager);
-void tracker_db_manager_set_vtab_user_data (TrackerDBManager *db_manager,
- gpointer user_data);
-
G_END_DECLS
#endif /* __LIBTRACKER_DB_MANAGER_H__ */
diff --git a/src/tracker/tracker-reset.c b/src/tracker/tracker-reset.c
index 576e73880..488c5145e 100644
--- a/src/tracker/tracker-reset.c
+++ b/src/tracker/tracker-reset.c
@@ -274,6 +274,7 @@ reset_run (void)
NULL,
NULL,
NULL,
+ NULL,
&error);
if (!db_manager) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]