From b3c524cea10d636bd7e657d274ba9f94c1d1e433 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Fri, 29 Jan 2016 00:24:15 +0000 Subject: Move some things around to try and prevent invalid pointer accesses on exit --- amiga/bitmap.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'amiga/bitmap.c') 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), -- cgit v1.2.3