]> granicus.if.org Git - libass/commitdiff
Don't apply windows-like font scaling if hhea or os2 tables contain invalid
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Fri, 3 Aug 2007 15:39:38 +0000 (15:39 +0000)
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Fri, 3 Aug 2007 15:39:38 +0000 (15:39 +0000)
metrics.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24003 b3059339-0415-0410-9bf9-f77b7e298cf2

libass/ass_font.c

index b93c41e1b1c0eb141da331de06c3b5d10c4dba58..c434da7ca66abdda6ddf1ced8eae547dfd67b164 100644 (file)
@@ -204,8 +204,12 @@ static void face_set_size(FT_Face face, double size)
        FT_Size_Metrics *m = &face->size->metrics;
        // VSFilter uses metrics from TrueType OS/2 table
        // The idea was borrowed from asa (http://asa.diac24.net)
-       if (hori && os2)
-               mscale = ((double)(hori->Ascender - hori->Descender)) / (os2->usWinAscent + os2->usWinDescent);
+       if (hori && os2) {
+               int hori_height = hori->Ascender - hori->Descender;
+               int os2_height = os2->usWinAscent + os2->usWinDescent;
+               if (hori_height && os2_height)
+                       mscale = (double)hori_height / os2_height;
+       }
        memset(&rq, 0, sizeof(rq));
        rq.type = FT_SIZE_REQUEST_TYPE_REAL_DIM;
        rq.width = 0;