فهرست منبع

Merge pull request #45603 from zaevi/csharp_fix_string_hash

[C#] Fix string.Hash()
Rémi Verschelde 4 سال پیش
والد
کامیت
c691444d2e
1فایلهای تغییر یافته به همراه8 افزوده شده و 8 حذف شده
  1. 8 8
      modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs

+ 8 - 8
modules/mono/glue/GodotSharp/GodotSharp/Core/StringExtensions.cs

@@ -462,18 +462,18 @@ namespace Godot
         }
 
         // <summary>
-        // Hash the string and return a 32 bits integer.
+        // Hash the string and return a 32 bits unsigned integer.
         // </summary>
-        public static int Hash(this string instance)
+        public static uint Hash(this string instance)
         {
-            int index = 0;
-            int hashv = 5381;
-            int c;
+            uint hash = 5381;
 
-            while ((c = instance[index++]) != 0)
-                hashv = (hashv << 5) + hashv + c; // hash * 33 + c
+            foreach(uint c in instance)
+            {
+                hash = (hash << 5) + hash + c; // hash * 33 + c
+            }
 
-            return hashv;
+            return hash;
         }
 
         /// <summary>