Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/d0a9fc3e35113e8734d10338856a43599f98d50c
...commit
http://git.netsurf-browser.org/netsurf.git/commit/d0a9fc3e35113e8734d10338856a43599f98d50c
...tree
http://git.netsurf-browser.org/netsurf.git/tree/d0a9fc3e35113e8734d10338856a43599f98d50c
The branch, master has been updated
via d0a9fc3e35113e8734d10338856a43599f98d50c (commit)
from 7d402ebc460ec5a11eab526cc52b4d6430496df3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=d0a9fc3e35113e8734d10338856a43599f98d50c
commit d0a9fc3e35113e8734d10338856a43599f98d50c
Author: Chris Young <[email protected]>
Commit: Chris Young <[email protected]>
Fix IORequest duplication and ensure library bases are cleared when closed.
diff --git a/frontends/amiga/libs.c b/frontends/amiga/libs.c
index cbef3c2..7de768b 100644
--- a/frontends/amiga/libs.c
+++ b/frontends/amiga/libs.c
@@ -113,7 +113,9 @@
#define AMINS_CLASS_CLOSE(PREFIX) \
if(I##PREFIX) DropInterface((struct Interface *)I##PREFIX); \
- if(PREFIX##Base) CloseClass(PREFIX##Base);
+ if(PREFIX##Base) CloseClass(PREFIX##Base); \
+ I##PREFIX = NULL; \
+ PREFIX##Base = NULL;
#define AMINS_CLASS_STRUCT(PREFIX) \
struct ClassLibrary *PREFIX##Base = NULL; \
@@ -136,7 +138,8 @@
}
#define AMINS_LIB_CLOSE(PREFIX) \
- if(PREFIX##Base) CloseLibrary((struct Library *)PREFIX##Base);
+ if(PREFIX##Base) CloseLibrary((struct Library *)PREFIX##Base); \
+ PREFIX##Base = NULL;
#define AMINS_LIB_STRUCT(PREFIX) \
struct PREFIX##Base *PREFIX##Base = NULL;
@@ -156,7 +159,8 @@
}
#define AMINS_CLASS_CLOSE(PREFIX) \
- if(PREFIX##Base) CloseLibrary(PREFIX##Base);
+ if(PREFIX##Base) CloseLibrary(PREFIX##Base); \
+ PREFIX##Base = NULL;
#define AMINS_CLASS_STRUCT(PREFIX) \
struct Library *PREFIX##Base = NULL; \
diff --git a/frontends/amiga/schedule.c b/frontends/amiga/schedule.c
index 2d2da38..ee4e34a 100644
--- a/frontends/amiga/schedule.c
+++ b/frontends/amiga/schedule.c
@@ -170,7 +170,11 @@ static nserror schedule_remove(void (*callback)(void *p),
void *p, bool abort)
if(nscb != NULL) {
if(abort == true) ami_schedule_remove_timer_event(nscb);
+#ifdef __amigaos4__
FreeSysObject(ASOT_IOREQUEST, nscb);
+#else
+ FreeVec(nscb);
+#endif
pblHeapConstruct(schedule_list);
}
@@ -190,7 +194,11 @@ static void schedule_remove_all(void)
{
ami_schedule_remove_timer_event(nscb);
pblIteratorRemove(iterator);
+#ifdef __amigaos4__
FreeSysObject(ASOT_IOREQUEST, nscb);
+#else
+ FreeVec(nscb);
+#endif
};
pblIteratorFree(iterator);
@@ -337,7 +345,7 @@ nserror ami_schedule(int t, void (*callback)(void *p), void
*p)
TAG_DONE);
#else
if(schedule_msgport == NULL) return NSERROR_NOMEM;
- nscb = (struct nscallback *)CreateIORequest(schedule_msgport,
sizeof(struct nscallback));
+ nscb = AllocVec(sizeof(struct nscallback), MEMF_PUBLIC | MEMF_CLEAR);
*nscb = *tioreq;
#endif
if(!nscb) return NSERROR_NOMEM;
-----------------------------------------------------------------------
Summary of changes:
frontends/amiga/libs.c | 10 +++++++---
frontends/amiga/schedule.c | 10 +++++++++-
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/frontends/amiga/libs.c b/frontends/amiga/libs.c
index cbef3c2..7de768b 100644
--- a/frontends/amiga/libs.c
+++ b/frontends/amiga/libs.c
@@ -113,7 +113,9 @@
#define AMINS_CLASS_CLOSE(PREFIX) \
if(I##PREFIX) DropInterface((struct Interface *)I##PREFIX); \
- if(PREFIX##Base) CloseClass(PREFIX##Base);
+ if(PREFIX##Base) CloseClass(PREFIX##Base); \
+ I##PREFIX = NULL; \
+ PREFIX##Base = NULL;
#define AMINS_CLASS_STRUCT(PREFIX) \
struct ClassLibrary *PREFIX##Base = NULL; \
@@ -136,7 +138,8 @@
}
#define AMINS_LIB_CLOSE(PREFIX) \
- if(PREFIX##Base) CloseLibrary((struct Library *)PREFIX##Base);
+ if(PREFIX##Base) CloseLibrary((struct Library *)PREFIX##Base); \
+ PREFIX##Base = NULL;
#define AMINS_LIB_STRUCT(PREFIX) \
struct PREFIX##Base *PREFIX##Base = NULL;
@@ -156,7 +159,8 @@
}
#define AMINS_CLASS_CLOSE(PREFIX) \
- if(PREFIX##Base) CloseLibrary(PREFIX##Base);
+ if(PREFIX##Base) CloseLibrary(PREFIX##Base); \
+ PREFIX##Base = NULL;
#define AMINS_CLASS_STRUCT(PREFIX) \
struct Library *PREFIX##Base = NULL; \
diff --git a/frontends/amiga/schedule.c b/frontends/amiga/schedule.c
index 2d2da38..ee4e34a 100644
--- a/frontends/amiga/schedule.c
+++ b/frontends/amiga/schedule.c
@@ -170,7 +170,11 @@ static nserror schedule_remove(void (*callback)(void *p),
void *p, bool abort)
if(nscb != NULL) {
if(abort == true) ami_schedule_remove_timer_event(nscb);
+#ifdef __amigaos4__
FreeSysObject(ASOT_IOREQUEST, nscb);
+#else
+ FreeVec(nscb);
+#endif
pblHeapConstruct(schedule_list);
}
@@ -190,7 +194,11 @@ static void schedule_remove_all(void)
{
ami_schedule_remove_timer_event(nscb);
pblIteratorRemove(iterator);
+#ifdef __amigaos4__
FreeSysObject(ASOT_IOREQUEST, nscb);
+#else
+ FreeVec(nscb);
+#endif
};
pblIteratorFree(iterator);
@@ -337,7 +345,7 @@ nserror ami_schedule(int t, void (*callback)(void *p), void
*p)
TAG_DONE);
#else
if(schedule_msgport == NULL) return NSERROR_NOMEM;
- nscb = (struct nscallback *)CreateIORequest(schedule_msgport,
sizeof(struct nscallback));
+ nscb = AllocVec(sizeof(struct nscallback), MEMF_PUBLIC | MEMF_CLEAR);
*nscb = *tioreq;
#endif
if(!nscb) return NSERROR_NOMEM;
--
NetSurf Browser
_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org