r20758 - gnucash/trunk/src/import-export/qif-import - Correct memory handling of scm_to_locale_string per guile manual
J. Alex Aycinena
alex.aycinena at code.gnucash.org
Mon Jun 13 00:42:28 EDT 2011
Author: alex.aycinena
Date: 2011-06-13 00:42:27 -0400 (Mon, 13 Jun 2011)
New Revision: 20758
Trac: http://svn.gnucash.org/trac/changeset/20758
Modified:
gnucash/trunk/src/import-export/qif-import/dialog-account-picker.c
Log:
Correct memory handling of scm_to_locale_string per guile manual
Modified: gnucash/trunk/src/import-export/qif-import/dialog-account-picker.c
===================================================================
--- gnucash/trunk/src/import-export/qif-import/dialog-account-picker.c 2011-06-13 03:49:50 UTC (rev 20757)
+++ gnucash/trunk/src/import-export/qif-import/dialog-account-picker.c 2011-06-13 04:42:27 UTC (rev 20758)
@@ -74,7 +74,7 @@
GtkTreeRowReference **reference)
{
GtkTreeIter iter;
- const char * compname;
+ char * compname;
char * acctname;
gboolean leafnode;
SCM current;
@@ -92,9 +92,17 @@
}
if (scm_is_string(SCM_CAR(current)))
- compname = scm_to_locale_string(SCM_CAR(current));
+ {
+ char * str;
+
+ scm_dynwind_begin (0);
+ str = scm_to_locale_string (SCM_CAR(current));
+ compname = g_strdup(str);
+ scm_dynwind_free (str);
+ scm_dynwind_end ();
+ }
else
- compname = "";
+ compname = g_strdup("");
if (!scm_is_null(SCM_CADDR(current)))
{
@@ -140,6 +148,7 @@
}
g_free(acctname);
+ g_free(compname);
accts = SCM_CDR(accts);
}
@@ -327,8 +336,16 @@
scm_gc_protect_object(wind->map_entry);
/* Set the initial account to be selected. */
- wind->selected_name = g_strdup(scm_to_locale_string(orig_acct));
+ if (scm_is_string(orig_acct))
+ {
+ char * str;
+ scm_dynwind_begin (0);
+ str = scm_to_locale_string (orig_acct);
+ wind->selected_name = g_strdup(str);
+ scm_dynwind_free (str);
+ scm_dynwind_end ();
+ }
xml = gnc_glade_xml_new("qif.glade", "QIF Import Account Picker");
More information about the gnucash-changes
mailing list