aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtocolBuffers
diff options
context:
space:
mode:
authorJie Luo <anandolee@gmail.com>2015-04-30 18:19:50 -0700
committerJie Luo <anandolee@gmail.com>2015-04-30 18:19:50 -0700
commit6e1ec5f6eaf79563aba0d220e36547afe15f0dd6 (patch)
tree2b2df2dcb2b086bbf4017bc7606a70721c04f8e6 /csharp/src/ProtocolBuffers
parent24ae5105f3bd44d39303d7e76edb659cca01f97b (diff)
downloadprotobuf-6e1ec5f6eaf79563aba0d220e36547afe15f0dd6.tar.gz
protobuf-6e1ec5f6eaf79563aba0d220e36547afe15f0dd6.tar.bz2
protobuf-6e1ec5f6eaf79563aba0d220e36547afe15f0dd6.zip
fix commends from Jon Skeet
Diffstat (limited to 'csharp/src/ProtocolBuffers')
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/FileDescriptor.cs11
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs6
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs12
3 files changed, 9 insertions, 20 deletions
diff --git a/csharp/src/ProtocolBuffers/Descriptors/FileDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/FileDescriptor.cs
index 8a3e26fa..307e9dd7 100644
--- a/csharp/src/ProtocolBuffers/Descriptors/FileDescriptor.cs
+++ b/csharp/src/ProtocolBuffers/Descriptors/FileDescriptor.cs
@@ -54,20 +54,15 @@ namespace Google.ProtocolBuffers.Descriptors
private readonly IList<FileDescriptor> publicDependencies;
private readonly DescriptorPool pool;
- public enum Syntax
+ public enum ProtoSyntax
{
- UNKNOWN,
PROTO2,
PROTO3
}
- public Syntax GetSyntax()
+ public ProtoSyntax Syntax
{
- if (proto.Syntax == "proto3")
- {
- return Syntax.PROTO3;
- }
- return Syntax.PROTO2;
+ get { return proto.Syntax == "proto3" ? ProtoSyntax.PROTO3 : ProtoSyntax.PROTO2; }
}
private FileDescriptor(FileDescriptorProto proto, FileDescriptor[] dependencies, DescriptorPool pool, bool allowUnknownDependencies)
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs b/csharp/src/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs
index 60b032e2..d5c6c9cf 100644
--- a/csharp/src/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs
+++ b/csharp/src/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs
@@ -68,11 +68,7 @@ namespace Google.ProtocolBuffers.FieldAccess
{
this.descriptor = descriptor;
accessors = new IFieldAccessor<TMessage, TBuilder>[descriptor.Fields.Count];
- bool supportFieldPresence = false;
- if (descriptor.File.GetSyntax() == FileDescriptor.Syntax.PROTO2)
- {
- supportFieldPresence = true;
- }
+ bool supportFieldPresence = descriptor.File.Syntax == FileDescriptor.ProtoSyntax.PROTO2;
for (int i = 0; i < accessors.Length; i++)
{
accessors[i] = CreateAccessor(descriptor.Fields[i], propertyNames[i], supportFieldPresence);
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs b/csharp/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
index b964066d..df9dedaf 100644
--- a/csharp/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
+++ b/csharp/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
@@ -58,9 +58,8 @@ namespace Google.ProtocolBuffers.FieldAccess
get { return clrType; }
}
- internal SinglePrimitiveAccessor(FieldDescriptor fieldDesriptor, string name, bool supportFieldPresence)
+ internal SinglePrimitiveAccessor(FieldDescriptor fieldDescriptor, string name, bool supportFieldPresence)
{
- field = fieldDesriptor;
PropertyInfo messageProperty = typeof(TMessage).GetProperty(name, null, ReflectionUtil.EmptyTypes);
PropertyInfo builderProperty = typeof(TBuilder).GetProperty(name, null, ReflectionUtil.EmptyTypes);
MethodInfo clearMethod = typeof(TBuilder).GetMethod("Clear" + name);
@@ -77,8 +76,11 @@ namespace Google.ProtocolBuffers.FieldAccess
throw new ArgumentException("Has properties not available");
}
hasDelegate = ReflectionUtil.CreateDelegateFunc<TMessage, bool>(hasProperty.GetGetMethod());
+ } else
+ {
+ hasDelegate = message => !GetValue(message).Equals(fieldDescriptor.DefaultValue);
}
-
+
clrType = messageProperty.PropertyType;
clearDelegate = ReflectionUtil.CreateDelegateFunc<TBuilder, IBuilder>(clearMethod);
getValueDelegate = ReflectionUtil.CreateUpcastDelegate<TMessage>(messageProperty.GetGetMethod());
@@ -87,10 +89,6 @@ namespace Google.ProtocolBuffers.FieldAccess
public bool Has(TMessage message)
{
- if (hasDelegate == null)
- {
- return !GetValue(message).Equals(field.DefaultValue);
- }
return hasDelegate(message);
}