added test+fix for transparency group stacking
[swftools.git] / lib / devices / ops.c
index 8342930..bda4742 100644 (file)
@@ -46,7 +46,7 @@ static void dbg(char*format, ...)
     int l;
     va_list arglist;
     va_start(arglist, format);
-    vsprintf(buf, format, arglist);
+    vsnprintf(buf, sizeof(buf)-1, format, arglist);
     va_end(arglist);
     l = strlen(buf);
     while(l && buf[l-1]=='\n') {
@@ -66,7 +66,7 @@ inline gfxcolor_t transform_color(internal_t*i, gfxcolor_t*col)
     col2.r = col->r;
     col2.g = col->g;
     col2.b = col->b;
-    col2.a = (col->a * i->alpha)>>8;
+    col2.a = (col->a * i->alpha)/255;
     return col2;
 }
 
@@ -160,7 +160,9 @@ void ops_endpage(struct _gfxdevice*dev)
 
 gfxresult_t* ops_finish(struct _gfxdevice*dev)
 {
-    free(dev->internal);dev->internal = 0;
+    if(dev->internal) 
+       free(dev->internal);
+    dev->internal = 0;
     return 0;
 }