fixed optimizing of polygons with lines on top of each other
[swftools.git] / lib / gfxtools.c
index 327a0cb..e3ab3e1 100644 (file)
@@ -346,9 +346,10 @@ void gfxline_optimize(gfxline_t*line)
        if(l->type == gfx_lineTo && next->type == gfx_lineTo) {
            double dx = l->x-x;
            double dy = l->y-y;
-           double nx = next->x-x;
-           double ny = next->y-y;
+           double nx = next->x-l->x;
+           double ny = next->y-l->y;
            if(fabs(dx*ny - dy*nx) < 0.000001 && (dx*nx + dy*ny) >= 0) {
+               printf("(%f %f) (%f %f)\n", dx, dy, nx, ny);
                combine = 1;
            }
        } else if(l->type == gfx_splineTo && next->type == gfx_splineTo) {
@@ -780,10 +781,10 @@ void gfxfontlist_free(gfxfontlist_t*list, char deletefonts)
     gfxfontlist_t*l = list;
     while(l) {
        gfxfontlist_t*next = l->next;
-       memset(l, 0, sizeof(*l));
        if(l->font) {
-           gfxfont_free(l->font);
+           gfxfont_free(l->font);l->font;
        }
+       l->next = 0;
        free(l);
        l = next;
     }