Author: chris_y
Date: Sun Nov 15 17:11:41 2009
New Revision: 9677
URL:
http://source.netsurf-browser.org?rev=9677&view=rev
Log:
Fix some potential issues with lists not being freed properly
Modified:
trunk/netsurf/amiga/download.c
trunk/netsurf/amiga/gui.c
trunk/netsurf/amiga/object.c
Modified: trunk/netsurf/amiga/download.c
URL:
http://source.netsurf-browser.org/trunk/netsurf/amiga/download.c?rev=9677...
==============================================================================
--- trunk/netsurf/amiga/download.c (original)
+++ trunk/netsurf/amiga/download.c Sun Nov 15 17:11:41 2009
@@ -224,17 +224,19 @@
struct dlnode *node;
struct dlnode *nnode;
+ if(!dllist) return;
+ if(IsListEmpty(dllist)) return;
+
node = (struct dlnode *)GetHead((struct List *)dllist);
- while(nnode=(struct dlnode *)GetSucc((struct Node *)node))
- {
+ do
+ {
+ nnode=(struct dlnode *)GetSucc((struct Node *)node);
free(node->node.ln_Name);
free(node->filename);
Remove((struct Node *)node);
FreeVec((struct Node *)node);
-
- node=nnode;
- }
+ }while(node=nnode);
}
void gui_window_save_as_link(struct gui_window *g, struct content *c)
Modified: trunk/netsurf/amiga/gui.c
URL:
http://source.netsurf-browser.org/trunk/netsurf/amiga/gui.c?rev=9677&...
==============================================================================
--- trunk/netsurf/amiga/gui.c (original)
+++ trunk/netsurf/amiga/gui.c Sun Nov 15 17:11:41 2009
@@ -1812,7 +1812,6 @@
ami_close_all_tabs(gwin);
break;
}
- node = nnode;
} while(node = nnode);
}
Modified: trunk/netsurf/amiga/object.c
URL:
http://source.netsurf-browser.org/trunk/netsurf/amiga/object.c?rev=9677&a...
==============================================================================
--- trunk/netsurf/amiga/object.c (original)
+++ trunk/netsurf/amiga/object.c Sun Nov 15 17:11:41 2009
@@ -61,17 +61,18 @@
struct nsObject *node;
struct nsObject *nnode;
+ if(IsMinListEmpty(objlist)) return;
node = (struct nsObject *)GetHead((struct List *)objlist);
- while(nnode=(struct nsObject *)GetSucc((struct Node *)node))
+ do
{
+ nnode=(struct nsObject *)GetSucc((struct Node *)node);
if(node->Type == AMINS_CALLBACK)
ami_remove_timer_event((struct nscallback *)node->objstruct);
DelObject(node);
-
- node=nnode;
- }
+
+ }while(node=nnode);
FreeVec(objlist);
}