gcc 2.95.3 fixes.
authorkramm <kramm>
Thu, 16 Dec 2004 10:44:00 +0000 (10:44 +0000)
committerkramm <kramm>
Thu, 16 Dec 2004 10:44:00 +0000 (10:44 +0000)
lib/modules/swfbits.c
lib/modules/swfrender.c
src/swfc.c

index 11aac11..f761ae0 100644 (file)
@@ -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;
@@ -295,6 +293,7 @@ RGBA* swf_JPEG2TagToImage(TAG*tag, int*width, int*height)
     struct jpeg_error_mgr jerr;
     struct jpeg_source_mgr mgr;
     RGBA * dest;
+    int y;
     *width = 0;
     *height = 0;
 
@@ -322,10 +321,9 @@ 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;
     for (y=0;y<cinfo.output_height;y++) {
         RGBA* line = &dest[y*cinfo.image_width];
         U8* to = (U8*)line;
@@ -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;t<cols;t++) {
-       palette[t].r = data[pos++];
-       palette[t].g = data[pos++];
-       palette[t].b = data[pos++];
-       if(alpha) {
-           palette[t].a = data[pos++];
-       }
+   
+    if(cols) {
+        palette = (RGBA*)rfx_alloc(cols*sizeof(RGBA));
+        for(t=0;t<cols;t++) {
+            palette[t].r = data[pos++];
+            palette[t].g = data[pos++];
+            palette[t].b = data[pos++];
+            if(alpha) {
+                palette[t].a = data[pos++];
+            }
+        }
     }
 
     for(y=0;y<height;y++) {
@@ -640,8 +640,8 @@ RGBA* swf_DefineLosslessBitsTagToImage(TAG*tag, int*dwidth, int*dheight)
        pos+=((srcwidth+3)&~3)-srcwidth; //align
     }
     if(palette)
-        free(palette);
-    free(data);
+        rfx_free(palette);
+    rfx_free(data);
     return dest;
 }
 
@@ -673,7 +673,7 @@ int swf_SetJPEGBits3(TAG * tag,U16 width,U16 height,RGBA* bitmap, int quality)
   swf_SetJPEGBitsFinish(jpeg);
   PUT32(&tag->data[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
index 7775681..552fd1f 100644 (file)
@@ -109,6 +109,8 @@ static inline void add_pixel(RENDERBUF*dest, float x, int y, renderpoint_t*p)
 static void add_line(RENDERBUF*buf, double x1, double y1, double x2, double y2, renderpoint_t*p)
 {
     renderbuf_internal*i = (renderbuf_internal*)buf->internal;
+    double diffx, diffy;
+    double ny1, ny2, stepx;
 /*    if(DEBUG&4) {
         int l = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
         printf(" l[%d - %.2f/%.2f -> %.2f/%.2f]", l, x1/20.0, y1/20.0, x2/20.0, y2/20.0);
@@ -125,15 +127,17 @@ static void add_line(RENDERBUF*buf, double x1, double y1, double x2, double y2,
     x2 = x2/20.0;
 
     if(y2 < y1) {
-        double x = x1;x1 = x2;x2=x;
-        double y = y1;y1 = y2;y2=y;
+        double x;
+        double y;
+       x = x1;x1 = x2;x2=x;
+       y = y1;y1 = y2;y2=y;
     }
     
-    double diffx = x2 - x1;
-    double diffy = y2 - y1;
+    diffx = x2 - x1;
+    diffy = y2 - y1;
     
-    double ny1 = (int)(y1)+CUT;
-    double ny2 = (int)(y2)+CUT;
+    ny1 = (int)(y1)+CUT;
+    ny2 = (int)(y2)+CUT;
 
     if(ny1 < y1) {
         ny1 = (int)(y1) + 1.0 + CUT;
@@ -145,20 +149,22 @@ static void add_line(RENDERBUF*buf, double x1, double y1, double x2, double y2,
     if(ny1 > ny2)
         return;
 
-    double stepx = diffx/diffy;
+    stepx = diffx/diffy;
     x1 = x1 + (ny1-y1)*stepx;
     x2 = x2 + (ny2-y2)*stepx;
 
-    int posy=(int)ny1;
-    int endy=(int)ny2;
-    double posx=0;
-    double startx = x1;
-
-    while(posy<=endy) {
-        float xx = (float)(startx + posx);
-        add_pixel(buf, xx ,posy, p);
-        posx+=stepx;
-        posy++;
+    {
+       int posy=(int)ny1;
+       int endy=(int)ny2;
+       double posx=0;
+       double startx = x1;
+
+       while(posy<=endy) {
+           float xx = (float)(startx + posx);
+           add_pixel(buf, xx ,posy, p);
+           posx+=stepx;
+           posy++;
+       }
     }
 }
 #define PI 3.14159265358979
@@ -454,11 +460,12 @@ void swf_RenderShape(RENDERBUF*dest, SHAPE2*shape, MATRIX*m, CXFORM*c, U16 _dept
         if(line->type == moveTo) {
         } else if(line->type == lineTo) {
             if(DEBUG&4) {
+               int l;
                 x1 = x;
                 y1 = y;
                 x2 = line->x;
                 y2 = line->y;
-                int l = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
+                l = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
                 printf("%d - %.2f/%.2f -> %.2f/%.2f ", l, x1/20.0, y1/20.0, x2/20.0, y2/20.0);
             }
 
@@ -477,15 +484,16 @@ void swf_RenderShape(RENDERBUF*dest, SHAPE2*shape, MATRIX*m, CXFORM*c, U16 _dept
             
             if(DEBUG&4) printf("\n");
         } else if(line->type == splineTo) {
+           int c,t,y,parts,qparts;
+           double xx,yy;
             
             transform_point(&mat, x, y, &x1, &y1);
             transform_point(&mat, line->sx, line->sy, &x2, &y2);
             transform_point(&mat, line->x, line->y, &x3, &y3);
             
-            int c = abs(x3-2*x2+x1) + abs(y3-2*y2+y1);
-            int parts,qparts;
-            int t;
-            double xx=x1,yy=y1;
+            c = abs(x3-2*x2+x1) + abs(y3-2*y2+y1);
+            xx=x1;
+           yy=y1;
 
             parts = (int)(sqrt(c)/3);
             if(!parts) parts = 1;
@@ -581,8 +589,10 @@ static void fill_bitmap(RGBA*line, int y, int x1, int x2, MATRIX*m, bitmap_t*b,
     }
 
     do {
+       RGBA col;
         int xx = (int)((  (x - rx) * m22 - (y - ry) * m21)*det);
         int yy = (int)((- (x - rx) * m12 + (y - ry) * m11)*det);
+       int ainv;
         
         if(clip) {
             if(xx<0) xx=0;
@@ -594,8 +604,8 @@ static void fill_bitmap(RGBA*line, int y, int x1, int x2, MATRIX*m, bitmap_t*b,
             yy %= b->height;
         }
 
-        RGBA col = b->data[yy*b->width+xx];
-        int ainv = 255-col.a;
+        col = b->data[yy*b->width+xx];
+        ainv = 255-col.a;
 
         line[x].r = ((line[x].r*ainv)>>8)+col.r;
         line[x].g = ((line[x].g*ainv)>>8)+col.g;
@@ -607,13 +617,14 @@ static void fill_bitmap(RGBA*line, int y, int x1, int x2, MATRIX*m, bitmap_t*b,
 static void fill(RENDERBUF*dest, RGBA*line, int y, int x1, int x2, state_t*state)
 {
     renderbuf_internal*i = (renderbuf_internal*)dest->internal;
+    U32 clipdepth;
 
     layer_t*l = state->layers;
 
     if(x1>=x2) //zero width? nothing to do.
         return;
 
-    U32 clipdepth = 0;
+    clipdepth = 0;
     while(l) {
         if(l->p->depth < clipdepth) {
             if(DEBUG&2) printf("(clipped)");
@@ -802,11 +813,12 @@ RGBA* swf_Render(RENDERBUF*dest)
         int size = sizeof(renderpoint_t);
         int num = tag->len / size;
         RGBA*line = line1;
+       state_t state;
+        memset(&state, 0, sizeof(state_t));
+
         if((y&1) && i->antialize)
             line = line2;
 
-        state_t state;
-        memset(&state, 0, sizeof(state_t));
 
        if(!i->background) {
            memset(line, 0, sizeof(RGBA)*i->width2);
index 6c84d98..9d9772a 100644 (file)
@@ -1273,10 +1273,10 @@ void s_outline(char*name, char*format, char*source)
 int s_playsound(char*name, int loops, int nomultiple, int stop)
 {
     sound_t* sound;
+    SOUNDINFO info;
     if(!name)
        return 0;
     sound = dictionary_lookup(&sounds, name);
-    SOUNDINFO info;
     if(!sound)
        return 0;
 
@@ -2570,10 +2570,10 @@ static int c_action(map_t*args)
        s_action(text);
     } else {
        FILE*fi = fopen(filename, "rb");
-       if(!fi) 
-           syntaxerror("Couldn't find file %s: %s", filename, strerror(errno));
        int l;
        char*text;
+       if(!fi) 
+           syntaxerror("Couldn't find file %s: %s", filename, strerror(errno));
        fseek(fi, 0, SEEK_END);
        l = ftell(fi);
        fseek(fi, 0, SEEK_SET);