ESourceRegistry: Do not mandate builtin sources.
authorTristan Van Berkom <tristanvb@openismus.com>
Thu, 13 Dec 2012 07:14:19 +0000 (16:14 +0900)
committerTristan Van Berkom <tristanvb@openismus.com>
Sat, 15 Dec 2012 05:12:15 +0000 (14:12 +0900)
This patch removes return_if_fail() critical warnings from
e_source_registry_ref_[default,builtin]_address_book() and
e_source_registry_ref_[default,builtin]_calendar(). This
avoids the console warnings when running make check.

Also, this patch fixes several locations in EDS where the
above functions blindly expect an #ESource to be returned.

addressbook/backends/file/e-book-backend-file.c
addressbook/libebook/e-book-client.c
calendar/backends/file/e-cal-backend-file.c
libedataserver/e-source-registry.c
tests/libebook/client/client-test-utils.c

index 6fb1483..351e288 100644 (file)
@@ -241,7 +241,7 @@ e_book_backend_file_extract_path_from_source (ESourceRegistry *registry,
         * "system-$COMPONENT" but since the data directories are already
         * split out by component, we'll continue to use the old "system"
         * directories for these particular data sources. */
-       if (e_source_equal (source, builtin_source))
+       if (builtin_source != NULL && e_source_equal (source, builtin_source))
                uid = "system";
 
        switch (path_type) {
@@ -257,7 +257,8 @@ e_book_backend_file_extract_path_from_source (ESourceRegistry *registry,
                        g_warn_if_reached ();
        }
 
-       g_object_unref (builtin_source);
+       if (builtin_source)
+               g_object_unref (builtin_source);
 
        return filename;
 }
index f80bc63..45d04cf 100644 (file)
@@ -1034,6 +1034,7 @@ e_book_client_get_self (ESourceRegistry *registry,
        g_return_val_if_fail (E_IS_BOOK_CLIENT (client), FALSE);
 
        source = e_source_registry_ref_builtin_address_book (registry);
+       g_return_val_if_fail (source != NULL, FALSE);
        *client = e_book_client_new (source, &local_error);
        g_object_unref (source);
 
index 00fa8d0..cd4ac34 100644 (file)
@@ -3431,14 +3431,15 @@ cal_backend_file_constructed (GObject *object)
         * "system-$COMPONENT" but since the data directories are already
         * split out by component, we'll continue to use the old "system"
         * directories for these particular data sources. */
-       if (e_source_equal (source, builtin_source))
+       if (builtin_source != NULL && e_source_equal (source, builtin_source))
                uid = "system";
 
        filename = g_build_filename (user_data_dir, component_type, uid, NULL);
        e_cal_backend_set_cache_dir (backend, filename);
        g_free (filename);
 
-       g_object_unref (builtin_source);
+       if (builtin_source)
+               g_object_unref (builtin_source);
 }
 
 /* Class initialization function for the file backend */
index 93ae50b..5d2c553 100644 (file)
@@ -2743,7 +2743,6 @@ e_source_registry_ref_builtin_address_book (ESourceRegistry *registry)
 
        uid = E_SOURCE_BUILTIN_ADDRESS_BOOK_UID;
        source = e_source_registry_ref_source (registry, uid);
-       g_return_val_if_fail (source != NULL, NULL);
 
        return source;
 }
@@ -2777,12 +2776,10 @@ e_source_registry_ref_default_address_book (ESourceRegistry *registry)
        source = e_source_registry_ref_source (registry, uid);
        g_free (uid);
 
-       /* The built-in source is always present. */
+       /* The built-in source is present in normal EDS installations. */
        if (source == NULL)
                source = e_source_registry_ref_builtin_address_book (registry);
 
-       g_return_val_if_fail (E_IS_SOURCE (source), NULL);
-
        return source;
 }
 
@@ -2845,7 +2842,6 @@ e_source_registry_ref_builtin_calendar (ESourceRegistry *registry)
 
        uid = E_SOURCE_BUILTIN_CALENDAR_UID;
        source = e_source_registry_ref_source (registry, uid);
-       g_return_val_if_fail (source != NULL, NULL);
 
        return source;
 }
@@ -2879,12 +2875,10 @@ e_source_registry_ref_default_calendar (ESourceRegistry *registry)
        source = e_source_registry_ref_source (registry, uid);
        g_free (uid);
 
-       /* The built-in source is always present. */
+       /* The built-in source is present in normal EDS installations. */
        if (source == NULL)
                source = e_source_registry_ref_builtin_calendar (registry);
 
-       g_return_val_if_fail (E_IS_SOURCE (source), NULL);
-
        return source;
 }
 
index f9bda66..bb41e82 100644 (file)
@@ -71,6 +71,7 @@ open_system_book (ESourceRegistry *registry,
        main_initialize ();
 
        source = e_source_registry_ref_builtin_address_book (registry);
+       g_return_val_if_fail (source != NULL, NULL);
        book_client = e_book_client_new (source, &error);
        g_object_unref (source);