Module: wine Branch: master Commit: 543270dfb53a2eb832e669bfab13b9699e11ec16 URL: http://source.winehq.org/git/wine.git/?a=commit;h=543270dfb53a2eb832e669bfab...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Sep 26 20:17:13 2007 +0200
gdi32: Don't pass a DC handle to WineEngGetFontUnicodeRanges.
---
dlls/gdi32/font.c | 11 ++++++++++- dlls/gdi32/freetype.c | 25 +++++++------------------ dlls/gdi32/gdi_private.h | 2 +- 3 files changed, 18 insertions(+), 20 deletions(-)
diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c index 44a3dde..59b6780 100644 --- a/dlls/gdi32/font.c +++ b/dlls/gdi32/font.c @@ -3411,5 +3411,14 @@ BOOL WINAPI GetCharWidthI(HDC hdc, UINT first, UINT count, LPWORD glyphs, LPINT */ DWORD WINAPI GetFontUnicodeRanges(HDC hdc, LPGLYPHSET lpgs) { - return WineEngGetFontUnicodeRanges(hdc, lpgs); + DWORD ret = 0; + DC *dc = DC_GetDCPtr(hdc); + + TRACE("(%p, %p)\n", hdc, lpgs); + + if (!dc) return 0; + + if (dc->gdiFont) ret = WineEngGetFontUnicodeRanges(dc->gdiFont, lpgs); + DC_ReleaseDCPtr(dc); + return ret; } diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 89f8b22..cc784ea 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -4634,28 +4634,17 @@ static DWORD get_font_unicode_ranges(FT_Face face, GLYPHSET *gs) return num_ranges; }
-DWORD WineEngGetFontUnicodeRanges(HDC hdc, LPGLYPHSET glyphset) +DWORD WineEngGetFontUnicodeRanges(GdiFont *font, LPGLYPHSET glyphset) { DWORD size = 0; - DC *dc = DC_GetDCPtr(hdc); - - TRACE("(%p, %p)\n", hdc, glyphset); + DWORD num_ranges = get_font_unicode_ranges(font->ft_face, glyphset);
- if (!dc) return 0; - - if (dc->gdiFont) + size = sizeof(GLYPHSET) + sizeof(WCRANGE) * (num_ranges - 1); + if (glyphset) { - DWORD num_ranges = get_font_unicode_ranges(dc->gdiFont->ft_face, glyphset); - - size = sizeof(GLYPHSET) + sizeof(WCRANGE) * (num_ranges - 1); - if (glyphset) - { - glyphset->cbThis = size; - glyphset->cRanges = num_ranges; - } + glyphset->cbThis = size; + glyphset->cRanges = num_ranges; } - - DC_ReleaseDCPtr(dc); return size; }
@@ -5079,7 +5068,7 @@ BOOL WineEngGetLinkedHFont(DC *dc, WCHAR c, HFONT *new_hfont, UINT *glyph) return FALSE; }
-DWORD WineEngGetFontUnicodeRanges(HDC hdc, LPGLYPHSET glyphset) +DWORD WineEngGetFontUnicodeRanges(GdiFont *font, LPGLYPHSET glyphset) { FIXME("(%p, %p): stub\n", hdc, glyphset); return 0; diff --git a/dlls/gdi32/gdi_private.h b/dlls/gdi32/gdi_private.h index adad616..0904049 100644 --- a/dlls/gdi32/gdi_private.h +++ b/dlls/gdi32/gdi_private.h @@ -430,7 +430,7 @@ extern BOOL WineEngGetCharABCWidthsI(GdiFont *font, UINT firstChar, UINT count, LPWORD pgi, LPABC buffer); extern BOOL WineEngGetCharWidth(GdiFont*, UINT, UINT, LPINT); extern DWORD WineEngGetFontData(GdiFont*, DWORD, DWORD, LPVOID, DWORD); -extern DWORD WineEngGetFontUnicodeRanges(HDC, LPGLYPHSET); +extern DWORD WineEngGetFontUnicodeRanges(GdiFont *, LPGLYPHSET); extern DWORD WineEngGetGlyphIndices(GdiFont *font, LPCWSTR lpstr, INT count, LPWORD pgi, DWORD flags); extern DWORD WineEngGetGlyphOutline(GdiFont*, UINT glyph, UINT format,