diff options
author | Jon Skeet <jonskeet@google.com> | 2015-07-23 15:31:34 +0100 |
---|---|---|
committer | Jon Skeet <jonskeet@google.com> | 2015-07-27 07:47:50 +0100 |
commit | 0dbd5ec80d33ea2a37f5362a24fd72b2c5f51aaa (patch) | |
tree | 87757b73246b762cede87e54620ef78b791f2881 /csharp/src/Google.Protobuf/Collections/RepeatedField.cs | |
parent | edff88886b03055f8dff0c0dad61d9450b59a23e (diff) | |
download | protobuf-0dbd5ec80d33ea2a37f5362a24fd72b2c5f51aaa.tar.gz protobuf-0dbd5ec80d33ea2a37f5362a24fd72b2c5f51aaa.tar.bz2 protobuf-0dbd5ec80d33ea2a37f5362a24fd72b2c5f51aaa.zip |
First attempt at using profile 259 for Google.Protobuf.
This requires .NET 4.5, and there are a few compatibility changes required around reflection.
Creating a PR from this to see how our CI systems handle it. Will want to add more documentation,
validation and probably tests before merging.
This is in aid of issue #590.
Diffstat (limited to 'csharp/src/Google.Protobuf/Collections/RepeatedField.cs')
-rw-r--r-- | csharp/src/Google.Protobuf/Collections/RepeatedField.cs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/csharp/src/Google.Protobuf/Collections/RepeatedField.cs b/csharp/src/Google.Protobuf/Collections/RepeatedField.cs index 9bab41ea..ccd1a9bb 100644 --- a/csharp/src/Google.Protobuf/Collections/RepeatedField.cs +++ b/csharp/src/Google.Protobuf/Collections/RepeatedField.cs @@ -29,10 +29,12 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endregion - + +using Google.Protobuf.Reflection; using System; using System.Collections; using System.Collections.Generic; +using Google.Protobuf.Compatibility; namespace Google.Protobuf.Collections { @@ -88,7 +90,7 @@ namespace Google.Protobuf.Collections uint tag = input.LastTag; var reader = codec.ValueReader; // Value types can be packed or not. - if (typeof(T).IsValueType && WireFormat.GetTagWireType(tag) == WireFormat.WireType.LengthDelimited) + if (typeof(T).IsValueType() && WireFormat.GetTagWireType(tag) == WireFormat.WireType.LengthDelimited) { int length = input.ReadLength(); if (length > 0) @@ -119,7 +121,7 @@ namespace Google.Protobuf.Collections return 0; } uint tag = codec.Tag; - if (typeof(T).IsValueType && WireFormat.GetTagWireType(tag) == WireFormat.WireType.LengthDelimited) + if (typeof(T).IsValueType() && WireFormat.GetTagWireType(tag) == WireFormat.WireType.LengthDelimited) { int dataSize = CalculatePackedDataSize(codec); return CodedOutputStream.ComputeRawVarint32Size(tag) + @@ -165,7 +167,7 @@ namespace Google.Protobuf.Collections } var writer = codec.ValueWriter; var tag = codec.Tag; - if (typeof(T).IsValueType && WireFormat.GetTagWireType(tag) == WireFormat.WireType.LengthDelimited) + if (typeof(T).IsValueType() && WireFormat.GetTagWireType(tag) == WireFormat.WireType.LengthDelimited) { // Packed primitive type uint size = (uint)CalculatePackedDataSize(codec); |