Displaying 3 results from an estimated 3 matches for "free_charset".
2008 Aug 07
1
memory leak in sub("[range]", ...) when #ifndef _LIBC (PR#11946)
...s also being leaked, but valgrind was
combining the two.
It looks like the cpp macro _LIBC is not defined when I compile
R in this Linux box. regex.c defines range_ends and range_starts
as different types, depending on the value of _LIBC, and it allocates
space for them in either case. However, free_charset() was only
freeing these things if _LIBC was defined. The following change
to regex.c:free_charset() seems to take care of the problem.
% svn diff regex.c
Index: regex.c
===================================================================
--- regex.c (revision 46038)
+++ regex.c (working c...
2008 Aug 07
0
memory leak in sub("[range]", ...) when #ifndef _LIBC (PR#12488)
...grind was
> combining the two.
>
> It looks like the cpp macro _LIBC is not defined when I compile
> R in this Linux box. regex.c defines range_ends and range_starts
> as different types, depending on the value of _LIBC, and it allocates
> space for them in either case. However, free_charset() was only
> freeing these things if _LIBC was defined. The following change
> to regex.c:free_charset() seems to take care of the problem.
>
> % svn diff regex.c
> Index: regex.c
> ===================================================================
> --- regex.c (revision...
2008 Jul 09
1
memory leak in sub("[range]",...)
...s a complicated mess of #ifdef's
but range_starts and range_ends are defined and appear to be used
whether or not _LIBC is defined. However, they are only freed if _LIBC
is defined. In my setup (Linux, gcc 3.4.5) _LIBC is not defined so
they don't get freed.
After the following change in free_charset() only the 85 byte/4 block
leak in readline remains.
Index: regex.c
===================================================================
--- regex.c (revision 46046)
+++ regex.c (working copy)
@@ -6240,9 +6240,9 @@
# ifdef _LIBC
re_free (cset->coll_syms);
re_free (cset->equiv_c...