[gnome-settings-daemon/benzea/no-tz-cache: 6/6] datetime: Make use of new gweather API
- From: Benjamin Berg <bberg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon/benzea/no-tz-cache: 6/6] datetime: Make use of new gweather API
- Date: Fri, 8 Jan 2021 21:58:14 +0000 (UTC)
commit 1b70ccc58bcdfb0a9f9c9325c81287af37167f0e
Author: Benjamin Berg <bberg redhat com>
Date: Fri Jan 8 22:22:48 2021 +0100
datetime: Make use of new gweather API
This mainly means free'ing the world when done and stopping to use the
now deprecated API (even though it would be acceptable in our case).
meson.build | 2 +-
plugins/datetime/weather-tz.c | 21 +++++++++------------
2 files changed, 10 insertions(+), 13 deletions(-)
---
diff --git a/meson.build b/meson.build
index 7dbee64b..53962a7e 100644
--- a/meson.build
+++ b/meson.build
@@ -97,7 +97,7 @@ gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>= 3.34.2')
gsettings_desktop_dep = dependency('gsettings-desktop-schemas', version: '>= 3.35.91')
gtk_dep = dependency('gtk+-3.0', version: '>= 3.15.3')
gtk_x11_dep = dependency('gtk+-x11-3.0')
-gweather_dep = dependency('gweather-3.0', version: '>= 3.9.5')
+gweather_dep = dependency('gweather-3.0', version: '>= 40.alpha')
lcms_dep = dependency('lcms2', version: '>= 2.2')
libcanberra_gtk_dep = dependency('libcanberra-gtk3')
libgeoclue_dep = dependency('libgeoclue-2.0', version: '>= 2.3.1')
diff --git a/plugins/datetime/weather-tz.c b/plugins/datetime/weather-tz.c
index f1de2b94..63b9d217 100644
--- a/plugins/datetime/weather-tz.c
+++ b/plugins/datetime/weather-tz.c
@@ -29,17 +29,14 @@ static GList *
location_get_cities (GWeatherLocation *parent_location)
{
GList *cities = NULL;
- GWeatherLocation **children;
- gint i;
-
- children = gweather_location_get_children (parent_location);
- for (i = 0; children[i]; i++) {
- if (gweather_location_get_level (children[i]) == GWEATHER_LOCATION_CITY) {
- cities = g_list_prepend (cities,
- children[i]);
+ GWeatherLocation *child = NULL;
+
+ while ((child = gweather_location_next_child (parent_location, child))) {
+ if (gweather_location_get_level (child) == GWEATHER_LOCATION_CITY) {
+ cities = g_list_prepend (cities, gweather_location_ref (child));
} else {
cities = g_list_concat (cities,
- location_get_cities (children[i]));
+ location_get_cities (child));
}
}
@@ -101,10 +98,10 @@ load_timezones (GList *cities)
GList *
weather_tz_db_get_locations (const gchar *country_code)
{
- GList *cities;
+ g_autoptr(GWeatherLocation) world = NULL;
+ g_autoptr(GWeatherLocation) country = NULL;
+ g_autolist(GWeatherLocation) cities = NULL;
GList *tz_locations;
- GWeatherLocation *world;
- GWeatherLocation *country;
world = gweather_location_get_world ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]