aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog24
-rwxr-xr-xconfigure20
-rw-r--r--configure.ac4
-rw-r--r--debian/changelog7
-rw-r--r--src/application-service-appstore.c33
5 files changed, 76 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index be744f0..1e223da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,29 @@
# Generated by Makefile. Do not edit.
+2011-09-28 Ted Gould <ted@gould.cx>
+
+ 0.4.0
+
+2011-09-16 Ted Gould <ted@gould.cx>
+
+ Memory leaks on double calls for properties
+
+2011-09-16 Ted Gould <ted@gould.cx>
+
+ Pulling in mterry's additional fixes
+
+2011-09-16 Michael Terry <michael.terry@canonical.com>
+
+ free application fields before resetting them to new values
+
+2011-09-16 Ted Gould <ted@gould.cx>
+
+ Ensure we set a default value for aicon
+
+2011-09-14 Ted Gould <ted@gould.cx>
+
+ Freeing properties on second run of building the app indicator
+
2011-08-11 Ted Gould <ted@gould.cx>
0.3.92
diff --git a/configure b/configure
index fd745e7..2f755e6 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for indicator-application 0.3.92.
+# Generated by GNU Autoconf 2.68 for indicator-application 0.4.0.
#
# Report bugs to <ted@canonical.com>.
#
@@ -572,8 +572,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='indicator-application'
PACKAGE_TARNAME='indicator-application'
-PACKAGE_VERSION='0.3.92'
-PACKAGE_STRING='indicator-application 0.3.92'
+PACKAGE_VERSION='0.4.0'
+PACKAGE_STRING='indicator-application 0.4.0'
PACKAGE_BUGREPORT='ted@canonical.com'
PACKAGE_URL=''
@@ -1317,7 +1317,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures indicator-application 0.3.92 to adapt to many kinds of systems.
+\`configure' configures indicator-application 0.4.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1388,7 +1388,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of indicator-application 0.3.92:";;
+ short | recursive ) echo "Configuration of indicator-application 0.4.0:";;
esac
cat <<\_ACEOF
@@ -1509,7 +1509,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-indicator-application configure 0.3.92
+indicator-application configure 0.4.0
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1789,7 +1789,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by indicator-application $as_me 0.3.92, which was
+It was created by indicator-application $as_me 0.4.0, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2610,7 +2610,7 @@ fi
# Define the identity of the package.
PACKAGE=indicator-application
- VERSION=0.3.92
+ VERSION=0.4.0
cat >>confdefs.h <<_ACEOF
@@ -13365,7 +13365,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by indicator-application $as_me 0.3.92, which was
+This file was extended by indicator-application $as_me 0.4.0, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -13431,7 +13431,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-indicator-application config.status 0.3.92
+indicator-application config.status 0.4.0
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 3b0bfe3..33a6260 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,11 +1,11 @@
-AC_INIT(indicator-application, 0.3.92, ted@canonical.com)
+AC_INIT(indicator-application, 0.4.0, ted@canonical.com)
AC_COPYRIGHT([Copyright 2009, 2010 Canonical])
AC_PREREQ(2.53)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(indicator-application, 0.3.92)
+AM_INIT_AUTOMAKE(indicator-application, 0.4.0)
AM_MAINTAINER_MODE
diff --git a/debian/changelog b/debian/changelog
index 9c7c880..77f8bd5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+indicator-application (0.4.0-0ubuntu1~ppa1) UNRELEASED; urgency=low
+
+ * New upstream release.
+ * Fix memory leak (LP: #829961)
+
+ -- Ted Gould <ted@ubuntu.com> Wed, 28 Sep 2011 09:53:06 -0500
+
indicator-application (0.3.92-0ubuntu1~ppa1) oneiric; urgency=low
* New upstream release.
diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c
index d59cfe9..edc517f 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,30 @@ got_all_properties (GObject * source_object, GAsyncResult * res,
/* Now the optional properties */
+ g_free(app->icon_desc);
+ if (icon_desc != NULL) {
+ app->icon_desc = g_variant_dup_string(icon_desc, NULL);
+ }
+ else {
+ app->icon_desc = g_strdup("");
+ }
+
+ g_free(app->aicon);
if (aicon_name != NULL) {
app->aicon = g_variant_dup_string(aicon_name, NULL);
+ } else {
+ app->aicon = g_strdup("");
+ }
+
+ g_free(app->aicon_desc);
+ if (aicon_desc != NULL) {
+ app->aicon_desc = g_variant_dup_string(aicon_desc, NULL);
+ }
+ else {
+ app->aicon_desc = g_strdup("");
}
+ 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 +567,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 {
@@ -736,6 +766,9 @@ application_free (Application * app)
if (app->icon_desc != NULL) {
g_free(app->icon_desc);
}
+ if (app->aicon != NULL) {
+ g_free(app->aicon);
+ }
if (app->aicon_desc != NULL) {
g_free(app->aicon_desc);
}