[gnome-settings-daemon/benzea/libgweather-api-update: 7/7] datetime: Make use of new gweather API
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon/benzea/libgweather-api-update: 7/7] datetime: Make use of new gweather API
- Date: Sat, 16 Jan 2021 22:12:07 +0000 (UTC)
commit 82d88014dfca2df7e081712870e1fb017c16b808
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 | 23 +++++++++--------------
2 files changed, 10 insertions(+), 15 deletions(-)
---
diff --git a/meson.build b/meson.build
index dffc0167..05fef19c 100644
--- a/meson.build
+++ b/meson.build
@@ -97,7 +97,7 @@ gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>= 3.37.1')
gsettings_desktop_dep = dependency('gsettings-desktop-schemas', version: '>= 40')
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..2eac90a2 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 ();
@@ -116,7 +113,5 @@ weather_tz_db_get_locations (const gchar *country_code)
cities = location_get_cities (country);
tz_locations = load_timezones (cities);
- g_list_free (cities);
-
return tz_locations;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]