git-svn: trunk@3381
Tomasz Kojm authored on 2007/12/07 00:24:03... | ... |
@@ -204,7 +204,7 @@ static int bfs_enqueue(struct bfs_list **bfs, struct bfs_list **last, struct cli |
204 | 204 |
return CL_SUCCESS; |
205 | 205 |
} |
206 | 206 |
|
207 |
-static struct cli_ac_node *bfs_dequeue(struct bfs_list **bfs) |
|
207 |
+static struct cli_ac_node *bfs_dequeue(struct bfs_list **bfs, struct bfs_list **last) |
|
208 | 208 |
{ |
209 | 209 |
struct bfs_list *lpt; |
210 | 210 |
struct cli_ac_node *pt; |
... | ... |
@@ -215,6 +215,8 @@ static struct cli_ac_node *bfs_dequeue(struct bfs_list **bfs) |
215 | 215 |
} else { |
216 | 216 |
*bfs = (*bfs)->next; |
217 | 217 |
pt = lpt->node; |
218 |
+ if(lpt == *last) |
|
219 |
+ *last = NULL; |
|
218 | 220 |
free(lpt); |
219 | 221 |
return pt; |
220 | 222 |
} |
... | ... |
@@ -239,7 +241,7 @@ static int ac_maketrans(struct cli_matcher *root) |
239 | 239 |
} |
240 | 240 |
} |
241 | 241 |
|
242 |
- while((node = bfs_dequeue(&bfs))) { |
|
242 |
+ while((node = bfs_dequeue(&bfs, &bfs_last))) { |
|
243 | 243 |
if(node->leaf) |
244 | 244 |
continue; |
245 | 245 |
|