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