r22651 - gnucash/trunk/src - Guile 2: replace deprecated SCM_SYMBOL_CHARS function
Geert Janssens
janssens-geert at telenet.be
Sat Dec 22 13:25:44 EST 2012
On 22-12-12 10:38, Geert Janssens wrote:
> BUT... While writing all this, I noticed I glossed over a subtle
> memory issue nonetheless that I have to fix again:
> scm_to_locale_string uses malloc to allocate memory for the return
> value. The memory should be freed using free. However gnucash is based
> on glib and hence mostly deopends g_malloc to allocate memory. This
> memory should be freed using g_free. That was probably the main reason
> scm_to_locale_string was wrapped in the first place, which I didn't
> realize.
>
> I'll readd the function gnc_scm_to_locale_string (in a simplified
> form) shortly to correct this. So once again: thanks for point this out.
I have readded a gnc_scm_to_locale_string functino and evaluated each
use of scm_to_locale_string for possible memory leaks. I think they
should all be properly handled now.
In most cases gnc_scm_to_locale_string was the proper replacement. In
the very few cases where it made sense, I kept the original
scm_to_locale_string accompanied by the proper scm_dynwind_* calls.
I also took the opportunity to improve some other guile convenience
functions. But this work is incomplete. I may add to it as I encounter
other cases where the wrapper functions make sense.
Geert
More information about the gnucash-devel
mailing list