r20645 - gnucash/trunk/src/report/report-system - Correct memory leaks found with Valgrind.
J. Alex Aycinena
alex.aycinena at code.gnucash.org
Sat May 14 20:37:03 EDT 2011
Author: alex.aycinena
Date: 2011-05-14 20:37:03 -0400 (Sat, 14 May 2011)
New Revision: 20645
Trac: http://svn.gnucash.org/trac/changeset/20645
Modified:
gnucash/trunk/src/report/report-system/gnc-report.c
Log:
Correct memory leaks found with Valgrind.
Modified: gnucash/trunk/src/report/report-system/gnc-report.c
===================================================================
--- gnucash/trunk/src/report/report-system/gnc-report.c 2011-05-14 16:17:07 UTC (rev 20644)
+++ gnucash/trunk/src/report/report-system/gnc-report.c 2011-05-15 00:37:03 UTC (rev 20645)
@@ -142,7 +142,7 @@
gboolean
gnc_run_report (gint report_id, char ** data)
{
- const gchar *free_data;
+ gchar *free_data;
SCM scm_text;
gchar *str;
@@ -156,8 +156,11 @@
if (scm_text == SCM_UNDEFINED || !scm_is_string (scm_text))
return FALSE;
+ scm_dynwind_begin (0);
free_data = scm_to_locale_string (scm_text);
*data = g_strdup (free_data);
+ scm_dynwind_free (free_data);
+ scm_dynwind_end ();
return TRUE;
}
@@ -185,6 +188,8 @@
{
SCM get_name = scm_c_eval_string("gnc:report-name");
SCM value;
+ gchar *str = NULL;
+ gchar *report_name = NULL;
if (report == SCM_BOOL_F)
return NULL;
@@ -193,7 +198,13 @@
if (!scm_is_string(value))
return NULL;
- return g_strdup(scm_to_locale_string(value));
+ scm_dynwind_begin (0);
+ str = scm_to_locale_string (value);
+ report_name = g_strdup (str);
+ scm_dynwind_free (str);
+ scm_dynwind_end ();
+
+ return report_name;
}
gchar*
More information about the gnucash-changes
mailing list