summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2015-08-05 18:13:04 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2015-08-05 18:13:04 +0100
commitef5ce5c2f609b47d2c59fbcb76cc88ae4c595445 (patch)
treec01544b6f1d77d13f97260fe8337be49d100596f
parentc5a834f5279581a00fddc959c5f8bc12c07d3483 (diff)
downloadnetsurf-ef5ce5c2f609b47d2c59fbcb76cc88ae4c595445.tar.gz
netsurf-ef5ce5c2f609b47d2c59fbcb76cc88ae4c595445.tar.bz2
Fix guru 80000006 occuring on OS3 when initialising lists.
-rwxr-xr-xamiga/object.c23
-rwxr-xr-xamiga/object.h16
2 files changed, 30 insertions, 9 deletions
diff --git a/amiga/object.c b/amiga/object.c
index 3ccd50b60..16e14d46f 100755
--- a/amiga/object.c
+++ b/amiga/object.c
@@ -29,14 +29,25 @@
#include "amiga/misc.h"
#include "amiga/object.h"
-struct MinList *NewObjList(void)
+#include "utils/log.h"
+
+#ifdef __amigaos4__
+#define NewnsList NewMinList
+#else
+#define NewnsList NewList
+#endif
+
+struct nsList *NewObjList(void)
{
- struct MinList *objlist = (struct MinList *)AllocVecTagList(sizeof(struct MinList), NULL);
- NewMinList(objlist);
+ struct nsList *objlist = (struct nsList *)AllocVecTagList(sizeof(struct nsList), NULL);
+ if(objlist == NULL) return NULL;
+
+ NewnsList(objlist);
+
return(objlist);
}
-struct nsObject *AddObject(struct MinList *objlist, ULONG otype)
+struct nsObject *AddObject(struct nsList *objlist, ULONG otype)
{
struct nsObject *dtzo;
@@ -70,12 +81,12 @@ void DelObjectNoFree(struct nsObject *dtzo)
DelObjectInternal(dtzo, FALSE);
}
-void FreeObjList(struct MinList *objlist)
+void FreeObjList(struct nsList *objlist)
{
struct nsObject *node;
struct nsObject *nnode;
- if(IsMinListEmpty(objlist)) return;
+ if(IsMinListEmpty((struct MinList *)objlist)) return;
node = (struct nsObject *)GetHead((struct List *)objlist);
do {
diff --git a/amiga/object.h b/amiga/object.h
index d5251f048..14d1ba416 100755
--- a/amiga/object.h
+++ b/amiga/object.h
@@ -46,10 +46,20 @@ struct nsObject
ULONG objstruct_size;
};
-struct MinList *NewObjList(void);
-struct nsObject *AddObject(struct MinList *objlist, ULONG otype);
+struct nsList
+{
+#ifdef __amigaos4__
+ struct MinList list;
+#else
+ struct List list;
+#endif
+};
+
+struct nsList *NewObjList(void);
+struct nsObject *AddObject(struct nsList *objlist, ULONG otype);
void DelObject(struct nsObject *dtzo);
void DelObjectNoFree(struct nsObject *dtzo);
-void FreeObjList(struct MinList *objlist);
+void FreeObjList(struct nsList *objlist);
#endif
+