]> granicus.if.org Git - libass/commitdiff
renderer: correctly handle case of small but nonzero \bord
authorDr.Smile <vabnick@gmail.com>
Sun, 19 May 2019 22:04:22 +0000 (01:04 +0300)
committerDr.Smile <vabnick@gmail.com>
Sun, 19 May 2019 22:04:22 +0000 (01:04 +0300)
Fixes https://github.com/libass/libass/pull/309.

libass/ass_render.c

index 14aa47029929674c585d6a61534aa20df0c7b91e..0a2a2791b7bab47422adfde202787ce38c63525f 100644 (file)
@@ -1418,8 +1418,11 @@ get_bitmap_glyph(ASS_Renderer *render_priv, GlyphInfo *info,
         frexp(w * (FFMAX(mxy, myy) + mzy * rz), &k->scale_ord_y);
         k->border.x = lrint(ldexp(bord_x, k->scale_ord_x) / STROKER_PRECISION);
         k->border.y = lrint(ldexp(bord_y, k->scale_ord_y) / STROKER_PRECISION);
-        if (!k->border.x && !k->border.y)
+        if (!k->border.x && !k->border.y) {
+            ass_cache_inc_ref(info->bm);
+            info->bm_o = info->bm;
             return;
+        }
 
         for (int i = 0; i < 3; i++) {
             m[i][0] = ldexp(m2[i][0], -k->scale_ord_x);