diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2008-08-15 17:22:52 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2008-08-15 17:22:52 +0000 |
commit | 8da23bd1f379217be5f59b2f2bd4b0bad8c0aac9 (patch) | |
tree | 8a93171be227485a06d4fa61d7e0d16f468db68e /amiga/bitmap.c | |
parent | 1a489fbf64828c1c329114a5e70513bbdb604fbb (diff) | |
download | netsurf-8da23bd1f379217be5f59b2f2bd4b0bad8c0aac9.tar.gz netsurf-8da23bd1f379217be5f59b2f2bd4b0bad8c0aac9.tar.bz2 |
More error checking
svn path=/trunk/netsurf/; revision=5129
Diffstat (limited to 'amiga/bitmap.c')
-rw-r--r-- | amiga/bitmap.c | 48 |
1 files 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; + } } |