The code for keeping visited tree was leaking some nodes. Here is the
correction.
Enjoy,
Ilya
--- ./src/LYStructs.h-buggy Sat Nov 6 19:26:50 1999
+++ ./src/LYStructs.h Mon Nov 15 02:35:22 1999
@@ -72,7 +72,6 @@ typedef struct _VisitedLink {
char * address;
int level;
struct _VisitedLink *next_tree;
- struct _VisitedLink *prev_tree;
struct _VisitedLink *prev_latest;
struct _VisitedLink *next_latest;
struct _VisitedLink *prev_first;
--- ./src/LYHistory.c-buggy Sat Nov 6 19:30:58 1999
+++ ./src/LYHistory.c Mon Nov 15 02:39:18 1999
@@ -170,9 +170,8 @@ PUBLIC void LYAddVisitedLink ARGS1(
while (b && b->level > l)
a = b, b = b->next_tree;
- if (a->next_tree)
- a->next_tree->prev_tree = new;
- new->prev_tree = a;
+ if (!b) /* a == Latest_tree */
+ Latest_tree = new;
new->next_tree = a->next_tree;
a->next_tree = new;
@@ -180,12 +179,11 @@ PUBLIC void LYAddVisitedLink ARGS1(
} else {
if (Latest_tree)
Latest_tree->next_tree = new;
- new->prev_tree = Latest_tree;
new->level = 0;
new->next_tree = NULL;
+ Latest_tree = new;
}
PrevVisitedLink = PrevActiveVisitedLink = new;
- Latest_tree = new;
if (!First_tree)
First_tree = new;