From fc0b84c7b230f35dcf3be4695d6d45142922ed8c Mon Sep 17 00:00:00 2001 From: "Dr.Smile" Date: Thu, 15 Jan 2015 20:53:57 +0300 Subject: Fix rare edge-case bug in rasterizer --- libass/ass_rasterizer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libass') 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) -- cgit v1.2.3