Hi'all,
There's a memory leak in dw_ext_iterator, which causes every call to
dw_ext_iterator_new() to leak one DwIterator. The solution is simple, as
can be seen in the attached patch.
Jorge, can you apply this? It saves quite a bit of memory, and will do
so even more once my next kbnav patch is out (now testing). The patch
currently contains this fix for dw_ext_iterator (plus a whole lot of
other changes to it). As this would make the patch fail to apply
cleanly, I'd like to see this fixed in CVS.
Cheers//Frank
--
WWWWW ________________________
## o o\ / Frank de Lange \
}# \| / +46-734352015 \
\ `--| _/ <Hacker for Hire> \
`---' \ +31-640037120 /
\ frank(a)unternet.org /
`------------------------'
[ "Omnis enim res, quae dando non deficit, dum habetur
et non datur, nondum habetur, quomodo habenda est." ]
diff -pruN dillo/src/dw_ext_iterator.c dillo_patched/src/dw_ext_iterator.c
--- dillo/src/dw_ext_iterator.c 2003-07-12 19:35:50.000000000 +0200
+++ dillo_patched/src/dw_ext_iterator.c 2003-11-03 13:58:35.020401864 +0100
@@ -366,7 +366,7 @@ gint a_Dw_ext_iterator_compare (DwExtIte
void a_Dw_ext_iterator_free (DwExtIterator *eit)
{
int i;
- for (i = 0; i < eit->stack_top; i++)
+ for (i = 0; i <= eit->stack_top; i++)
a_Dw_iterator_free (eit->stack[i]);
g_free (eit->stack);
g_free (eit);