diff options
author | Ted Gould <ted@gould.cx> | 2011-09-14 17:08:19 -0500 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2011-09-14 17:08:19 -0500 |
commit | 2f9133d26d836d4fcca9b917b5e8e075ac5c5737 (patch) | |
tree | f1547dfd9e52acdf6141a0603df35426aaf83dd7 | |
parent | 3bb503c831ba18d97a05419dc44781076712ea74 (diff) | |
download | ayatana-indicator-application-2f9133d26d836d4fcca9b917b5e8e075ac5c5737.tar.gz ayatana-indicator-application-2f9133d26d836d4fcca9b917b5e8e075ac5c5737.tar.bz2 ayatana-indicator-application-2f9133d26d836d4fcca9b917b5e8e075ac5c5737.zip |
Freeing properties on second run of building the app indicator
-rw-r--r-- | src/application-service-appstore.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c index d59cfe9..7b9c652 100644 --- a/src/application-service-appstore.c +++ b/src/application-service-appstore.c @@ -508,6 +508,14 @@ got_all_properties (GObject * source_object, GAsyncResult * res, else { app->validated = TRUE; + /* It is possible we're coming through a second time and + getting the properties. So we need to ensure we don't + already have them stored */ + g_free(app->id); + g_free(app->category); + g_free(app->icon); + g_free(app->menu); + app->id = g_variant_dup_string(id, NULL); app->category = g_variant_dup_string(category, NULL); app->status = string_to_status(g_variant_get_string(status, NULL)); @@ -516,10 +524,12 @@ got_all_properties (GObject * source_object, GAsyncResult * res, /* Now the optional properties */ + g_free(app->aicon); if (aicon_name != NULL) { app->aicon = g_variant_dup_string(aicon_name, NULL); } + g_free(app->icon_theme_path); if (icon_theme_path != NULL) { app->icon_theme_path = g_variant_dup_string(icon_theme_path, NULL); } else { @@ -539,12 +549,14 @@ got_all_properties (GObject * source_object, GAsyncResult * res, g_debug("'%s' ordering index is '%X'", app->id, app->ordering_index); app->appstore->priv->applications = g_list_sort_with_data(app->appstore->priv->applications, app_sort_func, NULL); + g_free(app->label); if (label != NULL) { app->label = g_variant_dup_string(label, NULL); } else { app->label = g_strdup(""); } + g_free(app->guide); if (guide != NULL) { app->guide = g_variant_dup_string(guide, NULL); } else { |