Speed optimization.
diff --git a/misc/version.c b/misc/version.c
index cfefc38..0698916 100644
--- a/misc/version.c
+++ b/misc/version.c
@@ -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;
}