X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fmodules%2Fswfbits.c;h=b85eb584de5ca3bb4e46aeb4adf2a6cc8c57dc1b;hp=b92b06bdc9a14bb3539c5ad4a500ea67bd7494e7;hb=8526dcf3a698c688e2cc4430ae106b5ecf70677f;hpb=cbc6baaa2cbb83ceb6f13be79051bcceaaa462f3 diff --git a/lib/modules/swfbits.c b/lib/modules/swfbits.c index b92b06b..b85eb58 100644 --- a/lib/modules/swfbits.c +++ b/lib/modules/swfbits.c @@ -37,7 +37,7 @@ typedef struct _JPEGDESTMGR static void RFXSWF_init_destination(j_compress_ptr cinfo) { JPEGDESTMGR * dmgr = (JPEGDESTMGR *)cinfo->dest; - dmgr->buffer = (JOCTET*)malloc(OUTBUFFER_SIZE); + dmgr->buffer = (JOCTET*)rfx_alloc(OUTBUFFER_SIZE); dmgr->mgr.next_output_byte = dmgr->buffer; dmgr->mgr.free_in_buffer = OUTBUFFER_SIZE; } @@ -53,7 +53,7 @@ static boolean RFXSWF_empty_output_buffer(j_compress_ptr cinfo) static void RFXSWF_term_destination(j_compress_ptr cinfo) { JPEGDESTMGR * dmgr = (JPEGDESTMGR *)cinfo->dest; swf_SetBlock(dmgr->t,(U8*)dmgr->buffer,OUTBUFFER_SIZE-dmgr->mgr.free_in_buffer); - free(dmgr->buffer); + rfx_free(dmgr->buffer); dmgr->mgr.free_in_buffer = 0; } @@ -63,10 +63,8 @@ JPEGBITS * swf_SetJPEGBitsStart(TAG * t,int width,int height,int quality) // redirect compression lib output to local SWF Tag structure - jpeg = (JPEGDESTMGR *)malloc(sizeof(JPEGDESTMGR)); - if (!jpeg) return NULL; + jpeg = (JPEGDESTMGR *)rfx_calloc(sizeof(JPEGDESTMGR)); - memset(jpeg,0x00,sizeof(JPEGDESTMGR)); jpeg->cinfo.err = jpeg_std_error(&jpeg->jerr); jpeg_create_compress(&jpeg->cinfo); @@ -116,7 +114,7 @@ int swf_SetJPEGBitsFinish(JPEGBITS * jpegbits) { JPEGDESTMGR * jpeg = (JPEGDESTMGR *)jpegbits; if (!jpeg) return -1; jpeg_finish_compress(&jpeg->cinfo); - free(jpeg); + rfx_free(jpeg); return 0; } @@ -178,7 +176,7 @@ int swf_SetJPEGBits(TAG * t,char * fname,int quality) jpeg_start_decompress(&cinfo); out = swf_SetJPEGBitsStart(t,cinfo.output_width,cinfo.output_height,quality); - scanline = (U8*)malloc(4*cinfo.output_width); + scanline = (U8*)rfx_alloc(4*cinfo.output_width); if (scanline) { int y; @@ -322,7 +320,7 @@ RGBA* swf_JPEG2TagToImage(TAG*tag, int*width, int*height) jpeg_read_header(&cinfo, TRUE); *width = cinfo.image_width; *height = cinfo.image_height; - dest = malloc(sizeof(RGBA)*cinfo.image_width*cinfo.image_height); + dest = rfx_alloc(sizeof(RGBA)*cinfo.image_width*cinfo.image_height); jpeg_start_decompress(&cinfo); int y; @@ -332,9 +330,9 @@ RGBA* swf_JPEG2TagToImage(TAG*tag, int*width, int*height) int x; jpeg_read_scanlines(&cinfo,&to,1); for(x=cinfo.output_width-1;x>=0;--x) { - int b = to[x*3+0]; + int r = to[x*3+0]; int g = to[x*3+1]; - int r = to[x*3+2]; + int b = to[x*3+2]; line[x].r = r; line[x].g = g; line[x].b = b; @@ -357,7 +355,7 @@ RGBA* swf_JPEG2TagToImage(TAG*tag, int*width, int*height) int RFXSWF_deflate_wraper(TAG * t,z_stream * zs,boolean finish) { - U8*data=malloc(OUTBUFFER_SIZE); + U8*data=rfx_alloc(OUTBUFFER_SIZE); zs->next_out = data; zs->avail_out = OUTBUFFER_SIZE; while (1) @@ -368,7 +366,7 @@ int RFXSWF_deflate_wraper(TAG * t,z_stream * zs,boolean finish) #ifdef DEBUG_RFXSWF fprintf(stderr,"rfxswf: zlib compression error (%i)\n",status); #endif - free(data); + rfx_free(data); return status; } @@ -383,7 +381,7 @@ int RFXSWF_deflate_wraper(TAG * t,z_stream * zs,boolean finish) } if(!finish) { - free(data); + rfx_free(data); return 0; } @@ -394,7 +392,7 @@ int RFXSWF_deflate_wraper(TAG * t,z_stream * zs,boolean finish) #ifdef DEBUG_RFXSWF fprintf(stderr,"rfxswf: zlib compression error (%i)\n",status); #endif - free(data); + rfx_free(data); return status; } @@ -408,7 +406,7 @@ int RFXSWF_deflate_wraper(TAG * t,z_stream * zs,boolean finish) if(status == Z_STREAM_END) break; } - free(data); + rfx_free(data); return 0; } @@ -460,7 +458,7 @@ int swf_SetLosslessBitsIndexed(TAG * t,U16 width,U16 height,U8 * bitmap,RGBA * p if (!pal) // create default palette for grayscale images { int i; - pal = malloc(256*sizeof(RGBA)); + pal = rfx_alloc(256*sizeof(RGBA)); for (i=0;i<256;i++) { pal[i].r = pal[i].g = pal[i].b = i; pal[i].a = 0xff;} ncolors = 256; } @@ -483,7 +481,7 @@ int swf_SetLosslessBitsIndexed(TAG * t,U16 width,U16 height,U8 * bitmap,RGBA * p if (deflateInit(&zs,Z_DEFAULT_COMPRESSION)==Z_OK) { U8 * zpal; // compress palette - if ((zpal = malloc(ncolors*4))) + if ((zpal = rfx_alloc(ncolors*4))) { U8 * pp = zpal; int i; @@ -530,12 +528,12 @@ int swf_SetLosslessBitsIndexed(TAG * t,U16 width,U16 height,U8 * bitmap,RGBA * p deflateEnd(&zs); - free(zpal); + rfx_free(zpal); } else res = -2; // memory error } else res = -3; // zlib error } - if (!palette) free(pal); + if (!palette) rfx_free(pal); return res; } @@ -554,7 +552,7 @@ RGBA* swf_DefineLosslessBitsTagToImage(TAG*tag, int*dwidth, int*dheight) int pos2=0; char alpha = tag->id == ST_DEFINEBITSLOSSLESS2; int t,x,y; - RGBA*palette; + RGBA*palette = 0; U8*data,*data2; RGBA*dest; if(tag->id != ST_DEFINEBITSLOSSLESS && @@ -578,7 +576,7 @@ RGBA* swf_DefineLosslessBitsTagToImage(TAG*tag, int*dwidth, int*dheight) *dwidth = width = swf_GetU16(tag); *dheight = height = swf_GetU16(tag); - dest = malloc(sizeof(RGBA)*width*height); + dest = rfx_alloc(sizeof(RGBA)*width*height); if(format == 3) cols = swf_GetU8(tag) + 1; else cols = 0; @@ -587,9 +585,9 @@ RGBA* swf_DefineLosslessBitsTagToImage(TAG*tag, int*dwidth, int*dheight) datalen = (width*height*bpp/8+cols*8); do { if(data) - free(data); + rfx_free(data); datalen+=4096; - data = malloc(datalen); + data = rfx_alloc(datalen); error = uncompress (data, &datalen, &tag->data[tag->pos], tag->len-tag->pos); } while(error == Z_BUF_ERROR); if(error != Z_OK) { @@ -597,15 +595,17 @@ RGBA* swf_DefineLosslessBitsTagToImage(TAG*tag, int*dwidth, int*dheight) return 0; } pos = 0; - - palette = (RGBA*)malloc(cols*sizeof(RGBA)); - for(t=0;tdata[pos], tag->len - pos - 4); - data=malloc(OUTBUFFER_SIZE); + data=rfx_alloc(OUTBUFFER_SIZE); memset(&zs,0x00,sizeof(z_stream)); if (deflateInit(&zs,Z_DEFAULT_COMPRESSION)!=Z_OK) { @@ -727,7 +727,7 @@ int swf_SetJPEGBits3(TAG * tag,U16 width,U16 height,RGBA* bitmap, int quality) } deflateEnd(&zs); - free(data); + rfx_free(data); return 0; } #endif