diff options
author | Ayende Rahien <Ayende@ayende.com> | 2010-02-19 00:30:04 +0200 |
---|---|---|
committer | Ayende Rahien <Ayende@ayende.com> | 2010-02-19 00:30:04 +0200 |
commit | e3aff478fd18b9bfb677e7a178b855a5950d5551 (patch) | |
tree | 168bf36ee3de746eafaeeaa64a1aff0dde6728f3 | |
parent | d3f2d098fa39596bf6ea59bb93d485e8aaaf7476 (diff) | |
download | protobuf-e3aff478fd18b9bfb677e7a178b855a5950d5551.tar.gz protobuf-e3aff478fd18b9bfb677e7a178b855a5950d5551.tar.bz2 protobuf-e3aff478fd18b9bfb677e7a178b855a5950d5551.zip |
Making ByteString.bytes internal, to allow faster access to the raw bytes.
Fixing ByteString.GetHashCode to create good hash code.
-rw-r--r-- | src/ProtocolBuffers/ByteString.cs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/ProtocolBuffers/ByteString.cs b/src/ProtocolBuffers/ByteString.cs index 78b946bb..bf02ea6e 100644 --- a/src/ProtocolBuffers/ByteString.cs +++ b/src/ProtocolBuffers/ByteString.cs @@ -46,7 +46,7 @@ namespace Google.ProtocolBuffers { private static readonly ByteString empty = new ByteString(new byte[0]); - private readonly byte[] bytes; + internal readonly byte[] bytes; /// <summary> /// Constructs a new ByteString from the given byte array. The array is @@ -154,10 +154,11 @@ namespace Google.ProtocolBuffers { } public override int GetHashCode() { - int ret = 23; - foreach (byte b in bytes) { - ret = (ret << 8) | b; - } + int ret = 23;
+ for (int i = 0; i < bytes.Length; i++)
+ {
+ ret = (ret * 23) ^ bytes[i];
+ }
return ret; } |