From f4903743baa616e39aefdab2d2b9920cb7a348fe Mon Sep 17 00:00:00 2001 From: Chris Young Date: Wed, 5 Aug 2015 23:42:20 +0100 Subject: Abstract all instances of NewMinList as it causes alert 80000006 on OS3 --- amiga/bitmap.c | 2 +- amiga/gui.c | 3 +-- amiga/hotlist.c | 1 - amiga/launch.c | 3 ++- amiga/object.c | 29 +++++++++++++++++++++-------- amiga/object.h | 17 ++++++----------- amiga/tree.c | 2 +- 7 files changed, 32 insertions(+), 25 deletions(-) (limited to 'amiga') 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 #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; -- cgit v1.2.3