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