Skip to content

Commit 6d03f9b

Browse files
Remove option to disable the table-driven parser in protoc.
It is now the default and only codegen parser implementation. Also, remove the newly dead code. PiperOrigin-RevId: 556873863
1 parent 740d314 commit 6d03f9b

File tree

10 files changed

+6
-847
lines changed

10 files changed

+6
-847
lines changed

src/google/protobuf/compiler/cpp/file.cc

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -656,8 +656,7 @@ void FileGenerator::GenerateSourceIncludes(io::Printer* p) {
656656
IncludeFile("third_party/protobuf/wire_format.h", p);
657657
}
658658

659-
if (HasGeneratedMethods(file_, options_) &&
660-
options_.tctable_mode != Options::kTCTableNever) {
659+
if (HasGeneratedMethods(file_, options_)) {
661660
IncludeFile("third_party/protobuf/generated_message_tctable_impl.h", p);
662661
}
663662

@@ -703,8 +702,7 @@ void FileGenerator::GenerateSourcePrelude(io::Printer* p) {
703702
namespace _pbi = ::$proto_ns$::internal;
704703
)cc");
705704

706-
if (HasGeneratedMethods(file_, options_) &&
707-
options_.tctable_mode != Options::kTCTableNever) {
705+
if (HasGeneratedMethods(file_, options_)) {
708706
p->Emit(R"cc(
709707
namespace _fl = ::$proto_ns$::internal::field_layout;
710708
)cc");
@@ -1554,8 +1552,7 @@ void FileGenerator::GenerateLibraryIncludes(io::Printer* p) {
15541552
if (HasSimpleBaseClasses(file_, options_)) {
15551553
IncludeFile("third_party/protobuf/generated_message_bases.h", p);
15561554
}
1557-
if (HasGeneratedMethods(file_, options_) &&
1558-
options_.tctable_mode != Options::kTCTableNever) {
1555+
if (HasGeneratedMethods(file_, options_)) {
15591556
IncludeFile("third_party/protobuf/generated_message_tctable_decl.h", p);
15601557
}
15611558
IncludeFile("third_party/protobuf/generated_message_util.h", p);

src/google/protobuf/compiler/cpp/generator.cc

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -191,16 +191,6 @@ bool CppGenerator::Generate(const FileDescriptor* file,
191191
} while (pos < value.size());
192192
} else if (key == "force_eagerly_verified_lazy") {
193193
file_options.force_eagerly_verified_lazy = true;
194-
} else if (key == "experimental_tail_call_table_mode") {
195-
if (value == "never") {
196-
file_options.tctable_mode = Options::kTCTableNever;
197-
} else if (value == "always") {
198-
file_options.tctable_mode = Options::kTCTableAlways;
199-
} else {
200-
*error = absl::StrCat(
201-
"Unknown value for experimental_tail_call_table_mode: ", value);
202-
return false;
203-
}
204194
} else if (key == "experimental_strip_nonfunctional_codegen") {
205195
file_options.strip_nonfunctional_codegen = true;
206196
} else {

src/google/protobuf/compiler/cpp/helpers.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -834,10 +834,6 @@ class PROTOC_EXPORT Formatter {
834834
vars_[key] = ToString(value);
835835
}
836836

837-
void AddMap(const absl::flat_hash_map<absl::string_view, std::string>& vars) {
838-
for (const auto& keyval : vars) vars_[keyval.first] = keyval.second;
839-
}
840-
841837
template <typename... Args>
842838
void operator()(const char* format, const Args&... args) const {
843839
printer_->FormatInternal({ToString(args)...}, vars_, format);
@@ -868,17 +864,6 @@ class PROTOC_EXPORT Formatter {
868864
return ScopedIndenter(this);
869865
}
870866

871-
class PROTOC_EXPORT SaveState {
872-
public:
873-
explicit SaveState(Formatter* format)
874-
: format_(format), vars_(format->vars_) {}
875-
~SaveState() { format_->vars_.swap(vars_); }
876-
877-
private:
878-
Formatter* format_;
879-
absl::flat_hash_map<absl::string_view, std::string> vars_;
880-
};
881-
882867
private:
883868
io::Printer* printer_;
884869
absl::flat_hash_map<absl::string_view, std::string> vars_;

src/google/protobuf/compiler/cpp/options.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ struct Options {
6767
std::string annotation_guard_name;
6868
FieldListenerOptions field_listener_options;
6969
EnforceOptimizeMode enforce_mode = EnforceOptimizeMode::kNoEnforcement;
70-
enum { kTCTableNever, kTCTableAlways } tctable_mode = kTCTableAlways;
7170
int num_cc_files = 0;
7271
bool safe_boundary_check = false;
7372
bool proto_h = false;

0 commit comments

Comments
 (0)