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@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);