[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) if ((dwFlags & IEFF_EXTENDED) && plf->lfCharSet == DEFAULT_CHARSET)
dwCompareFlags |= IFFCX_CHARSET; dwCompareFlags |= IFFCX_CHARSET;
first = InfoList;
last = &InfoList[nCount];
// std::unique(first, last, IntFontFamilyCompareEx); // std::unique(first, last, IntFontFamilyCompareEx);
if (nCount == 0) if (first == last)
return 0; return 0;
result = first = InfoList; result = first;
last = &InfoList[nCount];
while (++first != last) while (++first != last)
{ {
if (IntFontFamilyCompareEx(result, first, dwCompareFlags) != 0 && if (IntFontFamilyCompareEx(result, first, dwCompareFlags) != 0)
++result != first)
{ {
*result = *first; *(++result) = *first;
} }
} }
nCount = (int)(++result - InfoList); nCount = (int)(++result - InfoList);