summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2015-08-05 23:42:20 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2015-08-05 23:42:20 +0100
commitf4903743baa616e39aefdab2d2b9920cb7a348fe (patch)
tree286983218cf2e8e63c92d247d469897a187dc050
parentef5ce5c2f609b47d2c59fbcb76cc88ae4c595445 (diff)
downloadnetsurf-f4903743baa616e39aefdab2d2b9920cb7a348fe.tar.gz
netsurf-f4903743baa616e39aefdab2d2b9920cb7a348fe.tar.bz2
Abstract all instances of NewMinList as it causes alert 80000006 on OS3
-rw-r--r--amiga/bitmap.c2
-rw-r--r--amiga/gui.c3
-rwxr-xr-xamiga/hotlist.c1
-rwxr-xr-xamiga/launch.c3
-rwxr-xr-xamiga/object.c29
-rwxr-xr-xamiga/object.h17
-rw-r--r--amiga/tree.c2
7 files changed, 32 insertions, 25 deletions
diff --git a/amiga/bitmap.c b/amiga/bitmap.c
index 23f3a45e7..6984d3e0c 100644
--- a/amiga/bitmap.c
+++ b/amiga/bitmap.c
@@ -539,7 +539,7 @@ static nserror bitmap_render(struct bitmap *bitmap, hlcache_handle *content)
bitmap->width;
ami_init_layers(&bm_globals, bitmap->width, bitmap->height);
- NewMinList(&shared_pens);
+ ami_NewMinList(&shared_pens);
bm_globals.shared_pens = &shared_pens;
glob = &bm_globals;
diff --git a/amiga/gui.c b/amiga/gui.c
index b7f3285aa..1182d1c25 100644
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -889,7 +889,6 @@ static void gui_init2(int argc, char** argv)
ami_hotlist_initialise(nsoption_charp(hotlist_file));
ami_cookies_initialise();
ami_global_history_initialise();
-
search_web_select_provider(nsoption_int(search_provider));
if (notalreadyrunning &&
@@ -3853,7 +3852,7 @@ gui_window_create(struct browser_window *bw,
return NULL;
}
- NewMinList(&g->shared->shared_pens);
+ ami_NewMinList(&g->shared->shared_pens);
g->shared->scrollerhook.h_Entry = (void *)ami_scroller_hook;
g->shared->scrollerhook.h_Data = g->shared;
diff --git a/amiga/hotlist.c b/amiga/hotlist.c
index 7ca2c16a2..79e679f77 100755
--- a/amiga/hotlist.c
+++ b/amiga/hotlist.c
@@ -42,7 +42,6 @@ void ami_hotlist_initialise(const char *hotlist_file)
{
tree_hotlist_path = hotlist_file;
hotlist_window = ami_tree_create(TREE_HOTLIST, NULL);
-
if(!hotlist_window) return;
}
diff --git a/amiga/launch.c b/amiga/launch.c
index 5f22bdc23..9ac1c5b5f 100755
--- a/amiga/launch.c
+++ b/amiga/launch.c
@@ -31,6 +31,7 @@
#include <proto/openurl.h>
#include "amiga/launch.h"
+#include "amiga/object.h" /* for list abstraction */
#include "utils/nsoption.h"
#include "utils/nsurl.h"
@@ -131,7 +132,7 @@ void ami_openurl_open(void)
}
}
- NewMinList(&ami_unsupportedprotocols);
+ ami_NewMinList(&ami_unsupportedprotocols);
}
void ami_openurl_close(void)
diff --git a/amiga/object.c b/amiga/object.c
index 16e14d46f..4af924734 100755
--- a/amiga/object.c
+++ b/amiga/object.c
@@ -29,25 +29,38 @@
#include "amiga/misc.h"
#include "amiga/object.h"
-#include "utils/log.h"
-
#ifdef __amigaos4__
+#define nsList MinList
#define NewnsList NewMinList
#else
+#define nsList List
#define NewnsList NewList
#endif
+/****/
-struct nsList *NewObjList(void)
+/* Slightly abstract MinList initialisation */
+void ami_NewMinList(struct MinList *list)
{
- struct nsList *objlist = (struct nsList *)AllocVecTagList(sizeof(struct nsList), NULL);
- if(objlist == NULL) return NULL;
+ if(list == NULL) return;
+ NewnsList((struct nsList *)list);
+}
- NewnsList(objlist);
+/* Allocate and initialise a new MinList */
+struct MinList *ami_AllocMinList(void)
+{
+ struct MinList *objlist = (struct MinList *)AllocVecTagList(sizeof(struct nsList), NULL);
+ if(objlist == NULL) return NULL;
+ ami_NewMinList(objlist);
+ return objlist;
+}
+struct MinList *NewObjList(void)
+{
+ struct MinList *objlist = ami_AllocMinList();
return(objlist);
}
-struct nsObject *AddObject(struct nsList *objlist, ULONG otype)
+struct nsObject *AddObject(struct MinList *objlist, ULONG otype)
{
struct nsObject *dtzo;
@@ -81,7 +94,7 @@ void DelObjectNoFree(struct nsObject *dtzo)
DelObjectInternal(dtzo, FALSE);
}
-void FreeObjList(struct nsList *objlist)
+void FreeObjList(struct MinList *objlist)
{
struct nsObject *node;
struct nsObject *nnode;
diff --git a/amiga/object.h b/amiga/object.h
index 14d1ba416..27f60fc9a 100755
--- a/amiga/object.h
+++ b/amiga/object.h
@@ -46,20 +46,15 @@ struct nsObject
ULONG objstruct_size;
};
-struct nsList
-{
-#ifdef __amigaos4__
- struct MinList list;
-#else
- struct List list;
-#endif
-};
-struct nsList *NewObjList(void);
-struct nsObject *AddObject(struct nsList *objlist, ULONG otype);
+struct MinList *NewObjList(void);
+struct nsObject *AddObject(struct MinList *objlist, ULONG otype);
void DelObject(struct nsObject *dtzo);
void DelObjectNoFree(struct nsObject *dtzo);
-void FreeObjList(struct nsList *objlist);
+void FreeObjList(struct MinList *objlist);
+/** List abstraction as OS3 appears to have problems with NewMinList() **/
+struct MinList *ami_AllocMinList(void);
+void ami_NewMinList(struct MinList *list);
#endif
diff --git a/amiga/tree.c b/amiga/tree.c
index 4d2ea5bbd..5e05db261 100644
--- a/amiga/tree.c
+++ b/amiga/tree.c
@@ -1484,7 +1484,7 @@ struct treeview_window *ami_tree_create(int flags,
twin->ssl_data = ssl_data;
twin->tree = tree_create(flags, &ami_tree_callbacks, twin);
- NewMinList(&twin->shared_pens);
+ ami_NewMinList(&twin->shared_pens);
twin->globals.shared_pens = &twin->shared_pens;
return twin;