From: Dr.Smile Date: Thu, 15 Jan 2015 17:53:57 +0000 (+0300) Subject: Fix rare edge-case bug in rasterizer X-Git-Tag: 0.12.2~22 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fc0b84c7b230f35dcf3be4695d6d45142922ed8c;p=libass Fix rare edge-case bug in rasterizer --- diff --git a/libass/ass_rasterizer.c b/libass/ass_rasterizer.c index 84f9a88..ee19ad4 100644 --- a/libass/ass_rasterizer.c +++ b/libass/ass_rasterizer.c @@ -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)