slight VERSION_GetVersion optimization

Andreas Mohr a.mohr at mailto.de
Sun Sep 30 13:37:00 CDT 2001


Hi all,

speed optimization.

-- 
Andreas Mohr                        Stauferstr. 6, D-71272 Renningen, Germany
-------------- next part --------------
Determining best CVS host...
Using CVSROOT :pserver:cvs at rhlx01.fht-esslingen.de:/home/wine
Index: misc/version.c
===================================================================
RCS file: /home/wine/wine/misc/version.c,v
retrieving revision 1.45
diff -u -r1.45 version.c
--- misc/version.c	9 Aug 2001 21:16:55 -0000	1.45
+++ misc/version.c	30 Sep 2001 16:31:28 -0000
@@ -358,18 +358,26 @@
  */
 static WINDOWS_VERSION VERSION_GetVersion(void)
 {
-        static WORD winver = 0xffff;
+    static WORD winver = 0xffff;
 
-	if (versionForced) /* user has overridden any sensible checks */
-	  return defaultWinVersion;
+    if (winver == 0xffff) /* to be determined */
+    {
+        WINDOWS_VERSION retver;
+	  
+        if (versionForced) /* user has overridden any sensible checks */
+	    winver = defaultWinVersion;
+	else
+	{
+	    retver = VERSION_GetLinkedDllVersion();
 
-	if (winver == 0xffff) /* to be determined */ {
-	  WINDOWS_VERSION retver = VERSION_GetLinkedDllVersion();
+	    /* cache determined value, but do not store in case of WIN31 */
+	    if (retver != WIN31) winver = retver;
 
-	  if (retver != WIN31) winver = retver;
-	  return retver;
+	    return retver;
 	}
-	return winver;
+    }
+
+    return winver;
 }
 
 


More information about the wine-patches mailing list