Author: tkreuzer
Date: Mon May 16 15:37:23 2011
New Revision: 51789

URL: http://svn.reactos.org/svn/reactos?rev=51789&view=rev
Log:
[GDI FONT DRIVER]
eleminate gotos

Modified:
    branches/GSoC_2011/GdiFontDriver/drivers/video/font/ftfd/font.c

Modified: branches/GSoC_2011/GdiFontDriver/drivers/video/font/ftfd/font.c
URL: 
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/GdiFontDriver/drivers/video/font/ftfd/font.c?rev=51789&r1=51788&r2=51789&view=diff
==============================================================================
--- branches/GSoC_2011/GdiFontDriver/drivers/video/font/ftfd/font.c 
[iso-8859-1] (original)
+++ branches/GSoC_2011/GdiFontDriver/drivers/video/font/ftfd/font.c 
[iso-8859-1] Mon May 16 15:37:23 2011
@@ -22,34 +22,35 @@
     {
         /* Load the glyph into the glyph slot */
         fterror = FT_Load_Char(ftface, wc, FT_LOAD_NO_SCALE|FT_LOAD_NO_BITMAP);
-        if (fterror) goto allglyphs;
+        if (fterror) break;
 
         /* Calculate accumulative char width */
         ulAccumCharWidth += ftface->glyph->metrics.width;
         cGlyphs++;
     }
-    goto done;
-
-allglyphs:
-    TRACE("using all glyphs\n");
-
-    /* Start over */
-    ulAccumCharWidth = 0;
-    cGlyphs = 0;
-
-    /* Loop all glyphs in the font */
-    for (index = 0; index <= (UINT)ftface->num_glyphs; index++)
-    {
-        /* Load the glyph into the glyph slot */
-        fterror = FT_Load_Glyph(ftface, index, 
FT_LOAD_NO_SCALE|FT_LOAD_NO_BITMAP);
-        if (fterror) continue;
-
-        /* Calculate accumulative char width */
-        ulAccumCharWidth += ftface->glyph->metrics.width; // FIXME: weighted
-        cGlyphs++;
-    }
-
-done:
+
+    /* Check if an error occured */
+    if (wc <= L'z')
+    {
+        TRACE("using all glyphs\n");
+
+        /* Start over */
+        ulAccumCharWidth = 0;
+        cGlyphs = 0;
+
+        /* Loop all glyphs in the font */
+        for (index = 0; index <= (UINT)ftface->num_glyphs; index++)
+        {
+            /* Load the glyph into the glyph slot */
+            fterror = FT_Load_Glyph(ftface, index, 
FT_LOAD_NO_SCALE|FT_LOAD_NO_BITMAP);
+            if (fterror) continue;
+
+            /* Calculate accumulative char width */
+            ulAccumCharWidth += ftface->glyph->metrics.width; // FIXME: 
weighted
+            cGlyphs++;
+        }
+    }
+
     return (FWORD)(ulAccumCharWidth / cGlyphs);
 }
 


Reply via email to