Kaynağa Gözat

Alter FileDescriptorTables::kEmpty to GetEmptyInstance()

Kenichiro IDA 9 yıl önce
ebeveyn
işleme
894d18fba4
1 değiştirilmiş dosya ile 6 ekleme ve 3 silme
  1. 6 3
      src/google/protobuf/descriptor.cc

+ 6 - 3
src/google/protobuf/descriptor.cc

@@ -560,7 +560,7 @@ class FileDescriptorTables {
   ~FileDescriptorTables();
 
   // Empty table, used with placeholder files.
-  static const FileDescriptorTables kEmpty;
+  inline static const FileDescriptorTables& GetEmptyInstance();
 
   // -----------------------------------------------------------------
   // Finding items.
@@ -665,7 +665,10 @@ FileDescriptorTables::FileDescriptorTables()
 
 FileDescriptorTables::~FileDescriptorTables() {}
 
-const FileDescriptorTables FileDescriptorTables::kEmpty;
+inline const FileDescriptorTables& FileDescriptorTables::GetEmptyInstance() {
+    static const FileDescriptorTables kEmpty;
+    return kEmpty;
+}
 
 void DescriptorPool::Tables::AddCheckpoint() {
   checkpoints_.push_back(CheckPoint(this));
@@ -3535,7 +3538,7 @@ FileDescriptor* DescriptorBuilder::NewPlaceholderFile(
   placeholder->package_ = &internal::GetEmptyString();
   placeholder->pool_ = pool_;
   placeholder->options_ = &FileOptions::default_instance();
-  placeholder->tables_ = &FileDescriptorTables::kEmpty;
+  placeholder->tables_ = &FileDescriptorTables::GetEmptyInstance();
   placeholder->source_code_info_ = &SourceCodeInfo::default_instance();
   placeholder->is_placeholder_ = true;
   placeholder->syntax_ = FileDescriptor::SYNTAX_PROTO2;