From c12833104f43118d62f73ae9a82cfc7ba50a04b4 Mon Sep 17 00:00:00 2001 From: Jon Skeet Date: Fri, 26 Jun 2015 10:32:23 +0100 Subject: Tweaks and more tests for maps - Change the default message hash code to 1 to be consistent with other code - Change the empty list/map hash code to 0 as "empty map" is equivalent to "no map" - Removed map fields from unittest_proto3.proto - Created map_unittest_proto3.proto which is like map_unittest.proto but proto3-only - Fixed factory methods in FieldCodec highlighted by using all field types :) - Added tests for map serialization: - Extra fields within entries - Entries with value then key - Non-contiguous entries for the same map - Multiple entries for the same key Changes to generated code coming in next commit --- csharp/src/ProtocolBuffers/Collections/MapField.cs | 3 +-- csharp/src/ProtocolBuffers/Collections/RepeatedField.cs | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'csharp/src/ProtocolBuffers/Collections') diff --git a/csharp/src/ProtocolBuffers/Collections/MapField.cs b/csharp/src/ProtocolBuffers/Collections/MapField.cs index 6834cfbb..9eed833f 100644 --- a/csharp/src/ProtocolBuffers/Collections/MapField.cs +++ b/csharp/src/ProtocolBuffers/Collections/MapField.cs @@ -261,7 +261,7 @@ namespace Google.Protobuf.Collections public override int GetHashCode() { var valueComparer = EqualityComparer.Default; - int hash = 19; + int hash = 0; foreach (var pair in list) { hash ^= pair.Key.GetHashCode() * 31 + valueComparer.GetHashCode(pair.Value); @@ -380,7 +380,6 @@ namespace Google.Protobuf.Collections private readonly Codec codec; internal TKey Key { get; set; } internal TValue Value { get; set; } - internal int Size { get; set; } internal MessageAdapter(Codec codec) { diff --git a/csharp/src/ProtocolBuffers/Collections/RepeatedField.cs b/csharp/src/ProtocolBuffers/Collections/RepeatedField.cs index ebfc522f..4d4212cb 100644 --- a/csharp/src/ProtocolBuffers/Collections/RepeatedField.cs +++ b/csharp/src/ProtocolBuffers/Collections/RepeatedField.cs @@ -193,7 +193,7 @@ namespace Google.Protobuf.Collections public override int GetHashCode() { - int hash = 23; + int hash = 0; for (int i = 0; i < count; i++) { hash = hash * 31 + array[i].GetHashCode(); -- cgit v1.2.3