]> granicus.if.org Git - libass/commitdiff
Fix rare edge-case bug in rasterizer
authorDr.Smile <vabnick@gmail.com>
Thu, 15 Jan 2015 17:53:57 +0000 (20:53 +0300)
committerDr.Smile <vabnick@gmail.com>
Thu, 15 Jan 2015 17:53:57 +0000 (20:53 +0300)
libass/ass_rasterizer.c

index 84f9a88ba613199a92af3aaed4188179879f9983..ee19ad4df9ad3c6b9a9b2ed7488381b5dbff79f7 100644 (file)
@@ -669,8 +669,11 @@ static int rasterizer_fill_level(ASS_Rasterizer *rst,
         return 1;
     }
     if (n == 1) {
+        static const int test = SEGFLAG_UL_DR | SEGFLAG_EXACT_LEFT;
+        if (((line->flags & test) != test) == !(line->flags & SEGFLAG_DN))
+            winding++;
+
         int flag = 0;
-        if (line->c < 0)winding++;
         if (winding)
             flag ^= 1;
         if (winding - 1)