bugfix in page extraction
[swftools.git] / lib / devices / render.c
index 88b9ce9..a0f2031 100644 (file)
@@ -502,8 +502,6 @@ void render_stroke(struct _gfxdevice*dev, gfxline_t*line, gfxcoord_t width, gfxc
     }*/
 
     while(line) {
-        int x1,y1,x2,y2,x3,y3;
-
         if(line->type == gfx_moveTo) {
         } else if(line->type == gfx_lineTo) {
            double x1=x*i->zoom,y1=y*i->zoom;
@@ -511,7 +509,7 @@ void render_stroke(struct _gfxdevice*dev, gfxline_t*line, gfxcoord_t width, gfxc
            add_solidline(dev, x1, y1, x3, y3, width * i->multiply);
            fill_solid(dev, color);
         } else if(line->type == gfx_splineTo) {
-           int t,parts,qparts;
+           int t,parts;
            double xx,yy;
            
            double x1=x*i->zoom,y1=y*i->zoom;
@@ -732,6 +730,7 @@ void*render_result_get(gfxresult_t*r, const char*name)
            i = i->next;
            if(!i)
                return 0;
+            pagenr--;
        }
        return gfximage_asXPM(&i->img, 64);
     } else if(!strncmp(name,"page",4)) {
@@ -742,6 +741,7 @@ void*render_result_get(gfxresult_t*r, const char*name)
            i = i->next;
            if(!i)
                return 0;
+            pagenr--;
        }
        return &i->img;
     }
@@ -754,10 +754,15 @@ void render_result_destroy(gfxresult_t*r)
     while(i) {
        internal_result_t*next = i->next;
        free(i->img.data);i->img.data = 0;
-       free(i);
+
+        /* FIXME memleak
+           the following rfx_free causes a segfault on WIN32 machines,
+           if executed */
+        //rfx_free(i);
+
        i = next;
     }
-    free(r);
+    rfx_free(r);
 }
 
 gfxresult_t* render_finish(struct _gfxdevice*dev)
@@ -916,7 +921,6 @@ void render_drawlink(struct _gfxdevice*dev, gfxline_t*line, const char*action)
 void gfxdevice_render_init(gfxdevice_t*dev)
 {
     internal_t*i = (internal_t*)rfx_calloc(sizeof(internal_t));
-    int y;
     memset(dev, 0, sizeof(gfxdevice_t));
     
     dev->name = "render";