diff options
author | csharptest <roger@csharptest.net> | 2010-11-07 16:30:39 -0600 |
---|---|---|
committer | csharptest <roger@csharptest.net> | 2010-11-07 16:30:39 -0600 |
commit | 980ba8dcd470ddb964a84da1317028dd81c1d60a (patch) | |
tree | 0a442251e67543740202bb6c8d5f373bb960b2c0 /src/ProtoGen/EnumFieldGenerator.cs | |
parent | 804b6d842e9202cd79039cd8e7aa899426d37f78 (diff) | |
download | protobuf-980ba8dcd470ddb964a84da1317028dd81c1d60a.tar.gz protobuf-980ba8dcd470ddb964a84da1317028dd81c1d60a.tar.bz2 protobuf-980ba8dcd470ddb964a84da1317028dd81c1d60a.zip |
Full rutime working, Lite generator and runtime building but untested
Diffstat (limited to 'src/ProtoGen/EnumFieldGenerator.cs')
-rw-r--r-- | src/ProtoGen/EnumFieldGenerator.cs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/ProtoGen/EnumFieldGenerator.cs b/src/ProtoGen/EnumFieldGenerator.cs index 5fc24b56..cf986303 100644 --- a/src/ProtoGen/EnumFieldGenerator.cs +++ b/src/ProtoGen/EnumFieldGenerator.cs @@ -88,10 +88,12 @@ namespace Google.ProtocolBuffers.ProtoGen { // TODO(jonskeet): Make a more efficient way of doing this writer.WriteLine("int rawValue = input.ReadEnum();"); writer.WriteLine("if (!global::System.Enum.IsDefined(typeof({0}), rawValue)) {{", TypeName); - writer.WriteLine(" if (unknownFields == null) {"); // First unknown field - create builder now - writer.WriteLine(" unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);"); - writer.WriteLine(" }"); - writer.WriteLine(" unknownFields.MergeVarintField({0}, (ulong) rawValue);", Number); + if (!UseLiteRuntime) { + writer.WriteLine(" if (unknownFields == null) {"); // First unknown field - create builder now + writer.WriteLine(" unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);"); + writer.WriteLine(" }"); + writer.WriteLine(" unknownFields.MergeVarintField({0}, (ulong) rawValue);", Number); + } writer.WriteLine("} else {"); writer.WriteLine(" {0} = ({1}) rawValue;", PropertyName, TypeName); writer.WriteLine("}"); |