Dmitry Timoshkov : gdi32: Remove the code which bypasses the DC transformation checks.

Alexandre Julliard julliard at winehq.org
Thu Oct 9 07:43:03 CDT 2008


Module: wine
Branch: master
Commit: f898547b77a091132aefa1967887f5e640819bd4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f898547b77a091132aefa1967887f5e640819bd4

Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date:   Thu Oct  9 10:23:46 2008 +0900

gdi32: Remove the code which bypasses the DC transformation checks.

If it's absolutely required to check the child list first, that should be
done inside of find_in_cache using the same comparisons as done there.

---

 dlls/gdi32/freetype.c |   21 +++------------------
 1 files changed, 3 insertions(+), 18 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 145be9b..d4cecb3 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -3286,24 +3286,7 @@ GdiFont *WineEngCreateFontInstance(DC *dc, HFONT hfont)
     FMAT2 dcmat;
     FontSubst *psub = NULL;
 
-    EnterCriticalSection( &freetype_cs );
-
-    LIST_FOR_EACH_ENTRY(ret, &child_font_list, struct tagGdiFont, entry)
-    {
-        struct list *first_hfont = list_head(&ret->hfontlist);
-        hflist = LIST_ENTRY(first_hfont, HFONTLIST, entry);
-        if(hflist->hfont == hfont)
-        {
-            LeaveCriticalSection( &freetype_cs );
-            return ret;
-        }
-    }
-
-    if (!GetObjectW( hfont, sizeof(lf), &lf ))
-    {
-        LeaveCriticalSection( &freetype_cs );
-        return NULL;
-    }
+    if (!GetObjectW( hfont, sizeof(lf), &lf )) return NULL;
     lf.lfWidth = abs(lf.lfWidth);
 
     can_use_bitmap = GetDeviceCaps(dc->hSelf, TEXTCAPS) & TC_RA_ABLE;
@@ -3326,6 +3309,8 @@ GdiFont *WineEngCreateFontInstance(DC *dc, HFONT hfont)
     TRACE("DC transform %f %f %f %f\n", dcmat.eM11, dcmat.eM12,
                                         dcmat.eM21, dcmat.eM22);
 
+    EnterCriticalSection( &freetype_cs );
+
     /* check the cache first */
     if((ret = find_in_cache(hfont, &lf, &dcmat, can_use_bitmap)) != NULL) {
         TRACE("returning cached gdiFont(%p) for hFont %p\n", ret, hfont);




More information about the wine-cvs mailing list