浏览代码

Merge branch 'csharp-remove-extensions' into csharp-fixup

Jon Skeet 10 年之前
父节点
当前提交
3805b43009

+ 1 - 41
src/google/protobuf/compiler/csharp/csharp_helpers.cc

@@ -391,47 +391,7 @@ FieldGeneratorBase* CreateFieldGenerator(const FieldDescriptor* descriptor,
   }
 }
 
-bool HasRequiredFields(const Descriptor* descriptor, std::set<const Descriptor*>* already_seen) {
-  if (already_seen->find(descriptor) != already_seen->end()) {
-    // The type is already in cache.  This means that either:
-    // a. The type has no required fields.
-    // b. We are in the midst of checking if the type has required fields,
-    //    somewhere up the stack.  In this case, we know that if the type
-    //    has any required fields, they'll be found when we return to it,
-    //    and the whole call to HasRequiredFields() will return true.
-    //    Therefore, we don't have to check if this type has required fields
-    //    here.
-    return false;
-  }
-  already_seen->insert(descriptor);
-
-  // If the type has extensions, an extension with message type could contain
-  // required fields, so we have to be conservative and assume such an
-  // extension exists.
-  if (descriptor->extension_count() > 0) {
-    return true;
-  }
-
-  for (int i = 0; i < descriptor->field_count(); i++) {
-    const FieldDescriptor* field = descriptor->field(i);
-    if (field->is_required()) {
-      return true;
-    }
-    if (GetCSharpType(field->type()) == CSHARPTYPE_MESSAGE) {
-      if (HasRequiredFields(field->message_type(), already_seen)) {
-        return true;
-      }
-    }
-  }
-  return false;
-}
-
-bool HasRequiredFields(const Descriptor* descriptor) {
-  std::set<const Descriptor*> already_seen;
-  return HasRequiredFields(descriptor, &already_seen);
-}
-
-}  // namespace java
+}  // namespace csharp
 }  // namespace compiler
 }  // namespace protobuf
 }  // namespace google

+ 0 - 6
src/google/protobuf/compiler/csharp/csharp_helpers.h

@@ -101,12 +101,6 @@ uint FixedMakeTag(const FieldDescriptor* descriptor);
 
 FieldGeneratorBase* CreateFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
 
-bool HasRequiredFields(const Descriptor* descriptor);
-
-inline bool SupportFieldPresence(const FileDescriptor* file) {
-  return file->syntax() != FileDescriptor::SYNTAX_PROTO3;
-}
-
 }  // namespace csharp
 }  // namespace compiler
 }  // namespace protobuf