From 8da23bd1f379217be5f59b2f2bd4b0bad8c0aac9 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Fri, 15 Aug 2008 17:22:52 +0000 Subject: More error checking svn path=/trunk/netsurf/; revision=5129 --- amiga/bitmap.c | 48 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/amiga/bitmap.c b/amiga/bitmap.c index cbb54dcad..e28000aa4 100644 --- a/amiga/bitmap.c +++ b/amiga/bitmap.c @@ -39,7 +39,7 @@ void *bitmap_create(int width, int height, unsigned int state) bitmap = AllocVec(sizeof(struct bitmap),MEMF_CLEAR); if(bitmap) { - bitmap->pixdata = AllocVec(width*height*4,MEMF_CLEAR); + bitmap->pixdata = AllocVec(width*height*4*2,MEMF_CLEAR); bitmap->width = width; bitmap->height = height; } @@ -74,7 +74,15 @@ unsigned char *bitmap_get_buffer(void *bitmap) size_t bitmap_get_rowstride(void *bitmap) { struct bitmap *bm = bitmap; - return (bm->width)*4; + + if(bm) + { + return ((bm->width)*4); + } + else + { + return 0; + } } @@ -88,8 +96,13 @@ void bitmap_destroy(void *bitmap) { struct bitmap *bm = bitmap; - FreeVec(bm->pixdata); - FreeVec(bm); + if(bm) + { + FreeVec(bm->pixdata); + bm->pixdata = NULL; + FreeVec(bm); + bm = NULL; + } } @@ -171,17 +184,38 @@ int bitmap_get_width(void *bitmap) { struct bitmap *bm = bitmap; - return(bm->width); + if(bm) + { + return(bm->width); + } + else + { + return 0; + } } int bitmap_get_height(void *bitmap) { struct bitmap *bm = bitmap; - return(bm->height); + if(bm) + { + return(bm->height); + } + else + { + return 0; + } } size_t bitmap_get_bpp(void *bitmap) { - return(32); + if(bitmap) + { + return 32; + } + else + { + return 0; + } } -- cgit v1.2.3