[tracker] libtracker-data: Allow calling tracker_db_manager_locale_changed() before init



commit a4bfd2cf66b786a61a559c6a93d9ec80fc4e2b8f
Author: Sam Thursfield <sam thursfield codethink co uk>
Date:   Tue Oct 15 17:35:34 2013 +0100

    libtracker-data: Allow calling tracker_db_manager_locale_changed() before init
    
    This fixes an issue introduced in commit fa6317fbabb1a7, where the
    direct backend would fail to find the 'db-locale.txt' marker due to the
    global 'data_dir' path variable being NULL at the time it called
    tracker_db_manager_locale_changed(). It would then report that the
    locale had changed from 'unknown' to the system locale, and abort.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=676209

 src/libtracker-data/tracker-db-manager.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/src/libtracker-data/tracker-db-manager.c b/src/libtracker-data/tracker-db-manager.c
index 4ec6454..70a0d53 100644
--- a/src/libtracker-data/tracker-db-manager.c
+++ b/src/libtracker-data/tracker-db-manager.c
@@ -653,6 +653,14 @@ tracker_db_manager_locale_changed (void)
        gchar *current_locale;
        gboolean changed;
 
+       /* As a special case, we allow calling this API function before
+        * tracker_data_manager_init() has been called, so it can be used
+        * to check for locale mismatches for initializing the database.
+        */
+       if (!locations_initialized) {
+               tracker_db_manager_init_locations();
+       }
+
        /* Get current collation locale */
        current_locale = tracker_locale_get (TRACKER_LOCALE_COLLATE);
 


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