[WIN32K:NTGDI]
authorThomas Faber <thomas.faber@reactos.org>
Sun, 4 May 2014 08:38:44 +0000 (08:38 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sun, 4 May 2014 08:38:44 +0000 (08:38 +0000)
- Release device context semaphores in failure cases of GreExtTextOutW
CORE-8169 #resolve

svn path=/trunk/; revision=63142

reactos/win32ss/gdi/ntgdi/freetype.c

index 953b9e4..8172966 100644 (file)
@@ -3533,6 +3533,7 @@ GreExtTextOutW(
             {
                 DPRINT1("Failed to load and render glyph! [index: %d]\n", glyph_index);
                 IntUnLockFreeType;
+                DC_vFinishBlit(dc, NULL);
                 goto fail2;
             }
             glyph = face->glyph;
@@ -3546,6 +3547,7 @@ GreExtTextOutW(
             {
                 DPRINT1("Failed to render glyph! [index: %d]\n", glyph_index);
                 IntUnLockFreeType;
+                DC_vFinishBlit(dc, NULL);
                 goto fail2;
             }
         }
@@ -3609,6 +3611,7 @@ GreExtTextOutW(
             DPRINT1("WARNING: EngLockSurface() failed!\n");
             // FT_Done_Glyph(realglyph);
             IntUnLockFreeType;
+            DC_vFinishBlit(dc, NULL);
             goto fail2;
         }
         SourceGlyphSurf = EngLockSurface((HSURF)HSourceGlyph);
@@ -3617,6 +3620,7 @@ GreExtTextOutW(
             EngDeleteSurface((HSURF)HSourceGlyph);
             DPRINT1("WARNING: EngLockSurface() failed!\n");
             IntUnLockFreeType;
+            DC_vFinishBlit(dc, NULL);
             goto fail2;
         }