fix missing free in the new rectangle packing
remove unneeded (but harmless) statements
This commit is contained in:
parent
ab6aaa85be
commit
a7ee207475
@ -37,6 +37,7 @@
|
|||||||
// Martins Mozeiko
|
// Martins Mozeiko
|
||||||
// Cap Petschulat
|
// Cap Petschulat
|
||||||
// Omar Cornut
|
// Omar Cornut
|
||||||
|
// github:aloucks
|
||||||
//
|
//
|
||||||
// Misc other:
|
// Misc other:
|
||||||
// Ryan Gordon
|
// Ryan Gordon
|
||||||
@ -1054,7 +1055,6 @@ STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codep
|
|||||||
stbtt_uint16 searchRange = ttUSHORT(data+index_map+8) >> 1;
|
stbtt_uint16 searchRange = ttUSHORT(data+index_map+8) >> 1;
|
||||||
stbtt_uint16 entrySelector = ttUSHORT(data+index_map+10);
|
stbtt_uint16 entrySelector = ttUSHORT(data+index_map+10);
|
||||||
stbtt_uint16 rangeShift = ttUSHORT(data+index_map+12) >> 1;
|
stbtt_uint16 rangeShift = ttUSHORT(data+index_map+12) >> 1;
|
||||||
stbtt_uint16 item, offset, start, end;
|
|
||||||
|
|
||||||
// do a binary search of the segments
|
// do a binary search of the segments
|
||||||
stbtt_uint32 endCount = index_map + 14;
|
stbtt_uint32 endCount = index_map + 14;
|
||||||
@ -1071,8 +1071,8 @@ STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codep
|
|||||||
// now decrement to bias correctly to find smallest
|
// now decrement to bias correctly to find smallest
|
||||||
search -= 2;
|
search -= 2;
|
||||||
while (entrySelector) {
|
while (entrySelector) {
|
||||||
|
stbtt_uint16 end;
|
||||||
searchRange >>= 1;
|
searchRange >>= 1;
|
||||||
start = ttUSHORT(data + search + searchRange*2 + segcount*2 + 2);
|
|
||||||
end = ttUSHORT(data + search + searchRange*2);
|
end = ttUSHORT(data + search + searchRange*2);
|
||||||
if (unicode_codepoint > end)
|
if (unicode_codepoint > end)
|
||||||
search += searchRange*2;
|
search += searchRange*2;
|
||||||
@ -1080,11 +1080,12 @@ STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codep
|
|||||||
}
|
}
|
||||||
search += 2;
|
search += 2;
|
||||||
|
|
||||||
item = (stbtt_uint16) ((search - endCount) >> 1);
|
{
|
||||||
|
stbtt_uint16 offset, start;
|
||||||
|
stbtt_uint16 item = (stbtt_uint16) ((search - endCount) >> 1);
|
||||||
|
|
||||||
STBTT_assert(unicode_codepoint <= ttUSHORT(data + endCount + 2*item));
|
STBTT_assert(unicode_codepoint <= ttUSHORT(data + endCount + 2*item));
|
||||||
start = ttUSHORT(data + index_map + 14 + segcount*2 + 2 + 2*item);
|
start = ttUSHORT(data + index_map + 14 + segcount*2 + 2 + 2*item);
|
||||||
end = ttUSHORT(data + index_map + 14 + 2 + 2*item);
|
|
||||||
if (unicode_codepoint < start)
|
if (unicode_codepoint < start)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -1093,6 +1094,7 @@ STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codep
|
|||||||
return (stbtt_uint16) (unicode_codepoint + ttSHORT(data + index_map + 14 + segcount*4 + 2 + 2*item));
|
return (stbtt_uint16) (unicode_codepoint + ttSHORT(data + index_map + 14 + segcount*4 + 2 + 2*item));
|
||||||
|
|
||||||
return ttUSHORT(data + offset + (unicode_codepoint-start)*2 + index_map + 14 + segcount*6 + 2 + 2*item);
|
return ttUSHORT(data + offset + (unicode_codepoint-start)*2 + index_map + 14 + segcount*6 + 2 + 2*item);
|
||||||
|
}
|
||||||
} else if (format == 12 || format == 13) {
|
} else if (format == 12 || format == 13) {
|
||||||
stbtt_uint32 ngroups = ttULONG(data+index_map+12);
|
stbtt_uint32 ngroups = ttULONG(data+index_map+12);
|
||||||
stbtt_int32 low,high;
|
stbtt_int32 low,high;
|
||||||
@ -2421,6 +2423,7 @@ STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontd
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
STBTT_free(rects, spc->user_allocator_context);
|
||||||
return return_value;
|
return return_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user