Parcourir la source

stb_truetype: Turn codepoint assert into error check

Fixes the bug covered by PR #1066, but with a slightly different
fix that's hopefully a bit clearer.
Fabian Giesen il y a 4 ans
Parent
commit
0afc39f59a
1 fichiers modifiés avec 3 ajouts et 3 suppressions
  1. 3 3
      stb_truetype.h

+ 3 - 3
stb_truetype.h

@@ -1541,12 +1541,12 @@ STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codep
       search += 2;
 
       {
-         stbtt_uint16 offset, start;
+         stbtt_uint16 offset, start, last;
          stbtt_uint16 item = (stbtt_uint16) ((search - endCount) >> 1);
 
-         STBTT_assert(unicode_codepoint <= ttUSHORT(data + endCount + 2*item));
          start = ttUSHORT(data + index_map + 14 + segcount*2 + 2 + 2*item);
-         if (unicode_codepoint < start)
+         last = ttUSHORT(data + endCount + 2*item);
+         if (unicode_codepoint < start || unicode_codepoint > last)
             return 0;
 
          offset = ttUSHORT(data + index_map + 14 + segcount*6 + 2 + 2*item);