[GDI32] Improve IntFontFamilyListUnique function (#1491)

Make gdi32!IntFontFamilyListUnique function std::unique compatible. Previous code didn't set the first entry correctly. CORE-15785
This commit is contained in:
Katayama Hirofumi MZ 2019-04-09 17:39:42 +09:00 committed by GitHub
parent 672ac75033
commit ae80eb824e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -264,18 +264,19 @@ IntFontFamilyListUnique(FONTFAMILYINFO *InfoList, INT nCount,
if ((dwFlags & IEFF_EXTENDED) && plf->lfCharSet == DEFAULT_CHARSET)
dwCompareFlags |= IFFCX_CHARSET;
first = InfoList;
last = &InfoList[nCount];
// std::unique(first, last, IntFontFamilyCompareEx);
if (nCount == 0)
if (first == last)
return 0;
result = first = InfoList;
last = &InfoList[nCount];
result = first;
while (++first != last)
{
if (IntFontFamilyCompareEx(result, first, dwCompareFlags) != 0 &&
++result != first)
if (IntFontFamilyCompareEx(result, first, dwCompareFlags) != 0)
{
*result = *first;
*(++result) = *first;
}
}
nCount = (int)(++result - InfoList);