diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2016-01-29 00:24:15 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2016-01-29 00:24:15 +0000 |
commit | b3c524cea10d636bd7e657d274ba9f94c1d1e433 (patch) | |
tree | 7233f12bd72eaf8ee907e778f24ef0caceea2650 /amiga/bitmap.c | |
parent | 0ce170c18e971121e54ac60c863b523bc5874516 (diff) | |
download | netsurf-b3c524cea10d636bd7e657d274ba9f94c1d1e433.tar.gz netsurf-b3c524cea10d636bd7e657d274ba9f94c1d1e433.tar.bz2 |
Move some things around to try and prevent invalid pointer accesses on exit
Diffstat (limited to 'amiga/bitmap.c')
-rw-r--r-- | amiga/bitmap.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/amiga/bitmap.c b/amiga/bitmap.c index b98d95f5a..986f4261f 100644 --- a/amiga/bitmap.c +++ b/amiga/bitmap.c @@ -112,11 +112,12 @@ void amiga_bitmap_destroy(void *bitmap) if(bm) { - if((bm->nativebm) && (bm->dto == NULL)) { + if((bm->nativebm) && (bm->native == AMI_NSBM_TRUECOLOUR)) { ami_rtg_freebitmap(bm->nativebm); } - + if(bm->dto) { + /**\todo find out why this crashes on exit but not during normal program execution */ DisposeDTObject(bm->dto); } @@ -163,7 +164,7 @@ void amiga_bitmap_modified(void *bitmap) { struct bitmap *bm = bitmap; - if((bm->nativebm) && (bm->dto == NULL)) + if((bm->nativebm) && (bm->native == AMI_NSBM_TRUECOLOUR)) ami_rtg_freebitmap(bm->nativebm); if(bm->dto) DisposeDTObject(bm->dto); @@ -516,7 +517,7 @@ static inline struct BitMap *ami_bitmap_get_palettemapped(struct bitmap *bitmap, if(bitmap->dto == NULL) { bitmap->dto = ami_datatype_object_from_bitmap(bitmap); - + SetDTAttrs(bitmap->dto, NULL, NULL, PDTA_Screen, scrn, PDTA_ScaleQuality, nsoption_bool(scale_quality), |