widl, oleaut32: Replace a loop with a simple computation

Dan Hipschman dsh at linux.ucla.edu
Mon Sep 11 19:53:53 CDT 2006


ChangeLog:
* Replace loop in LHashValOfNameSysA with a simpler computation.
---
 dlls/oleaut32/hash.c |    8 +-------
 tools/widl/hash.c    |    8 +-------
 2 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/dlls/oleaut32/hash.c b/dlls/oleaut32/hash.c
index e87267c..9934b64 100644
--- a/dlls/oleaut32/hash.c
+++ b/dlls/oleaut32/hash.c
@@ -608,13 +608,7 @@ ULONG WINAPI LHashValOfNameSysA( SYSKIND
 
   while (*str)
   {
-    ULONG newLoWord = 0, i;
-
-    /* Cumulative prime multiplication (*37) with modulo 2^32 wrap-around */
-    for (i = 0; i < 37; i++)
-      newLoWord += nLoWord;
-
-    nLoWord = newLoWord + pnLookup[*str > 0x7f && nMask ? *str + 0x80 : *str];
+    nLoWord = 37 * nLoWord + pnLookup[*str > 0x7f && nMask ? *str + 0x80 : *str];
     str++;
   }
   /* Constrain to a prime modulo and sizeof(WORD) */
diff --git a/tools/widl/hash.c b/tools/widl/hash.c
index d67cb6b..2d6f1d3 100644
--- a/tools/widl/hash.c
+++ b/tools/widl/hash.c
@@ -605,13 +605,7 @@ unsigned long lhash_val_of_name_sys( sys
 
   while (*str)
   {
-    ULONG newLoWord = 0, i;
-
-    /* Cumulative prime multiplication (*37) with modulo 2^32 wrap-around */
-    for (i = 0; i < 37; i++)
-      newLoWord += nLoWord;
-
-    nLoWord = newLoWord + pnLookup[*str > 0x7f && nMask ? *str + 0x80 : *str];
+    nLoWord = 37 * nLoWord + pnLookup[*str > 0x7f && nMask ? *str + 0x80 : *str];
     str++;
   }
   /* Constrain to a prime modulo and sizeof(WORD) */



More information about the wine-patches mailing list