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