Internal changes to extensions.

PiperOrigin-RevId: 506091325
pull/11727/head
Protobuf Team Bot 2 years ago committed by Copybara-Service
parent 6e5a01bf72
commit 0093eb8354
  1. 13
      src/google/protobuf/descriptor.cc
  2. 5
      src/google/protobuf/descriptor.h
  3. 3
      src/google/protobuf/descriptor_unittest.cc
  4. 4
      src/google/protobuf/port_def.inc
  5. 1
      src/google/protobuf/port_undef.inc

@ -38,6 +38,7 @@
#include <array>
#include <cstdlib>
#include <functional>
#include <iterator>
#include <limits>
#include <memory>
#include <sstream>
@ -62,8 +63,11 @@
#include "absl/strings/str_format.h"
#include "absl/strings/str_join.h"
#include "absl/strings/str_split.h"
#include "absl/strings/string_view.h"
#include "absl/strings/strip.h"
#include "absl/strings/substitute.h"
#include "absl/synchronization/mutex.h"
#include "absl/types/optional.h"
#include "google/protobuf/any.h"
#include "google/protobuf/descriptor.pb.h"
#include "google/protobuf/descriptor_database.h"
@ -1872,6 +1876,7 @@ void DescriptorPool::AddUnusedImportTrackFile(absl::string_view file_name,
unused_import_track_files_[file_name] = is_error;
}
void DescriptorPool::ClearUnusedImportTrackFiles() {
unused_import_track_files_.clear();
}
@ -1912,7 +1917,10 @@ DescriptorPool* DescriptorPool::internal_generated_pool() {
const DescriptorPool* DescriptorPool::generated_pool() {
const DescriptorPool* pool = internal_generated_pool();
// Ensure that descriptor.proto has been registered in the generated pool.
// Ensure that descriptor.proto gets registered in the generated pool. It is a
// special case because it is included in the full runtime. We have to avoid
// registering it pre-main, because we need to ensure that the linker
// --gc-sections step can strip out the full runtime if it is unused.
DescriptorProto::descriptor();
return pool;
}
@ -6473,6 +6481,7 @@ void DescriptorBuilder::CrossLinkExtensionRange(
}
}
void DescriptorBuilder::CrossLinkField(FieldDescriptor* field,
const FieldDescriptorProto& proto) {
if (field->options_ == nullptr) {
@ -7111,7 +7120,7 @@ void DescriptorBuilder::ValidateFieldOptions(
// determine whether the json_name option is set on the field. Here we
// compare it against the default calculated json_name value and consider
// the option set if they are different. This won't catch the case when
// an user explicitly sets json_name to the default value, but should be
// a user explicitly sets json_name to the default value, but should be
// good enough to catch common misuses.
if (field->is_extension() &&
(field->has_json_name() &&

@ -70,6 +70,7 @@
#include "absl/log/absl_log.h"
#include "absl/strings/string_view.h"
#include "absl/synchronization/mutex.h"
#include "absl/types/optional.h"
#include "google/protobuf/port.h"
// Must be included last.
@ -116,6 +117,7 @@ class MethodOptions;
class FileOptions;
class UninterpretedOption;
class SourceCodeInfo;
class ExtensionMetadata;
// Defined in message.h
class Message;
@ -140,6 +142,7 @@ class Formatter;
namespace descriptor_unittest {
class DescriptorTest;
class ValidationErrorTest;
} // namespace descriptor_unittest
// Defined in printer.h
@ -2087,6 +2090,7 @@ class PROTOBUF_EXPORT DescriptorPool {
friend class FileDescriptor;
friend class DescriptorBuilder;
friend class FileDescriptorTables;
friend class google::protobuf::descriptor_unittest::ValidationErrorTest;
// Return true if the given name is a sub-symbol of any non-package
// descriptor that already exists in the descriptor pool. (The full
@ -2162,6 +2166,7 @@ class PROTOBUF_EXPORT DescriptorPool {
// Set of files to track for unused imports. The bool value when true means
// unused imports are treated as errors (and as warnings when false).
absl::flat_hash_map<std::string, bool> unused_import_track_files_;
};

@ -47,6 +47,7 @@
#include "absl/log/die_if_null.h"
#include "absl/log/scoped_mock_log.h"
#include "absl/strings/str_format.h"
#include "absl/strings/string_view.h"
#include "google/protobuf/unittest.pb.h"
#include "google/protobuf/unittest_custom_options.pb.h"
#include "google/protobuf/stubs/common.h"
@ -3937,6 +3938,7 @@ class ValidationErrorTest : public testing::Test {
return ABSL_DIE_IF_NULL(pool_.BuildFile(file_proto));
}
// Parse file_text as a FileDescriptorProto in text format and add it
// to the DescriptorPool. Expect errors to be produced which match the
// given error text.
@ -7078,6 +7080,7 @@ TEST_F(ValidationErrorTest, UnusedImportWithOtherError) {
}
TEST_F(ValidationErrorTest, PackageTooLong) {
BuildFileWithErrors(
"name: \"foo.proto\" "

@ -208,6 +208,10 @@ static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and
// Owner: mkruskal@
#define PROTOBUF_FUTURE_REMOVE_CLEARED_API 1
// Used for descriptor proto extension declarations.
// Owner: shaod@, gberg@
#define PROTOBUF_FUTURE_DESCRIPTOR_EXTENSION_DECL 1
#endif
#ifdef PROTOBUF_VERSION

@ -119,6 +119,7 @@
#ifdef PROTOBUF_FUTURE_BREAKING_CHANGES
#undef PROTOBUF_FUTURE_BREAKING_CHANGES
#undef PROTOBUF_FUTURE_REMOVE_CLEARED_API
#undef PROTOBUF_FUTURE_DESCRIPTOR_EXTENSION_DECL
#endif
// Restore macros that may have been #undef'd in port_def.inc.

Loading…
Cancel
Save