From 18a165ea7ec596e1555c1a82f03f4bc960bfc681 Mon Sep 17 00:00:00 2001 From: Kean Mariotti Date: Wed, 17 Apr 2024 07:17:36 +0000 Subject: cleanup messages allow list - Pass around container by reference instead of value (avoid unneeded deep-copies) - Use std::unordered_set instead of std::set (no need to be sorted) - Rename variable "messages_to_compile" to "messages_allowlist" to reduce confusion with other message lists in the code - Remove raw pointer Bug: 321668269 Test: presubmit Change-Id: I43eaf5c1db3d15b066a95f34373211aadf6417b4 --- .../java/java_proto_stream_code_generator.cpp | 31 +++++++++++----------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/tools/streaming_proto/java/java_proto_stream_code_generator.cpp b/tools/streaming_proto/java/java_proto_stream_code_generator.cpp index 9d61111fb5bd..6e0411757ede 100644 --- a/tools/streaming_proto/java/java_proto_stream_code_generator.cpp +++ b/tools/streaming_proto/java/java_proto_stream_code_generator.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include "Errors.h" @@ -214,7 +215,7 @@ static void write_file(CodeGeneratorResponse* response, const FileDescriptorProt */ static void write_multiple_files(CodeGeneratorResponse* response, const FileDescriptorProto& file_descriptor, - set messages_to_compile) { + const unordered_set& messages_allowlist) { // If there is anything to put in the outer class file, create one if (file_descriptor.enum_type_size() > 0) { vector enums; @@ -222,7 +223,7 @@ static void write_multiple_files(CodeGeneratorResponse* response, for (int i = 0; i < N; i++) { auto enum_full_name = file_descriptor.package() + "." + file_descriptor.enum_type(i).name(); - if (!messages_to_compile.empty() && !messages_to_compile.count(enum_full_name)) { + if (!messages_allowlist.empty() && !messages_allowlist.count(enum_full_name)) { continue; } enums.push_back(file_descriptor.enum_type(i)); @@ -230,7 +231,7 @@ static void write_multiple_files(CodeGeneratorResponse* response, vector messages; - if (messages_to_compile.empty() || !enums.empty()) { + if (messages_allowlist.empty() || !enums.empty()) { write_file(response, file_descriptor, make_file_name(file_descriptor, make_outer_class_name(file_descriptor)), true, enums, messages); @@ -246,12 +247,12 @@ static void write_multiple_files(CodeGeneratorResponse* response, auto message_full_name = file_descriptor.package() + "." + file_descriptor.message_type(i).name(); - if (!messages_to_compile.empty() && !messages_to_compile.count(message_full_name)) { + if (!messages_allowlist.empty() && !messages_allowlist.count(message_full_name)) { continue; } messages.push_back(file_descriptor.message_type(i)); - if (messages_to_compile.empty() || !messages.empty()) { + if (messages_allowlist.empty() || !messages.empty()) { write_file(response, file_descriptor, make_file_name(file_descriptor, file_descriptor.message_type(i).name()), false, enums, messages); @@ -261,14 +262,14 @@ static void write_multiple_files(CodeGeneratorResponse* response, static void write_single_file(CodeGeneratorResponse* response, const FileDescriptorProto& file_descriptor, - set messages_to_compile) { + const unordered_set& messages_allowlist) { int N; vector enums; N = file_descriptor.enum_type_size(); for (int i = 0; i < N; i++) { auto enum_full_name = file_descriptor.package() + "." + file_descriptor.enum_type(i).name(); - if (!messages_to_compile.empty() && !messages_to_compile.count(enum_full_name)) { + if (!messages_allowlist.empty() && !messages_allowlist.count(enum_full_name)) { continue; } @@ -281,14 +282,14 @@ static void write_single_file(CodeGeneratorResponse* response, auto message_full_name = file_descriptor.package() + "." + file_descriptor.message_type(i).name(); - if (!messages_to_compile.empty() && !messages_to_compile.count(message_full_name)) { + if (!messages_allowlist.empty() && !messages_allowlist.count(message_full_name)) { continue; } messages.push_back(file_descriptor.message_type(i)); } - if (messages_to_compile.empty() || !enums.empty() || !messages.empty()) { + if (messages_allowlist.empty() || !enums.empty() || !messages.empty()) { write_file(response, file_descriptor, make_file_name(file_descriptor, make_outer_class_name(file_descriptor)), true, enums, messages); @@ -296,7 +297,7 @@ static void write_single_file(CodeGeneratorResponse* response, } static void parse_args_string(stringstream args_string_stream, - set* messages_to_compile_out) { + unordered_set& messages_allowlist_out) { string line; while (getline(args_string_stream, line, ';')) { stringstream line_ss(line); @@ -305,7 +306,7 @@ static void parse_args_string(stringstream args_string_stream, if (arg_name == "include_filter") { string full_message_name; while (getline(line_ss, full_message_name, ',')) { - messages_to_compile_out->insert(full_message_name); + messages_allowlist_out.insert(full_message_name); } } else { ERRORS.Add(UNKNOWN_FILE, UNKNOWN_LINE, "Unexpected argument '%s'.", arg_name.c_str()); @@ -316,10 +317,10 @@ static void parse_args_string(stringstream args_string_stream, CodeGeneratorResponse generate_java_protostream_code(CodeGeneratorRequest request) { CodeGeneratorResponse response; - set messages_to_compile; + unordered_set messages_allowlist; auto request_params = request.parameter(); if (!request_params.empty()) { - parse_args_string(stringstream(request_params), &messages_to_compile); + parse_args_string(stringstream(request_params), messages_allowlist); } // Build the files we need. @@ -328,9 +329,9 @@ CodeGeneratorResponse generate_java_protostream_code(CodeGeneratorRequest reques const FileDescriptorProto& file_descriptor = request.proto_file(i); if (should_generate_for_file(request, file_descriptor.name())) { if (file_descriptor.options().java_multiple_files()) { - write_multiple_files(&response, file_descriptor, messages_to_compile); + write_multiple_files(&response, file_descriptor, messages_allowlist); } else { - write_single_file(&response, file_descriptor, messages_to_compile); + write_single_file(&response, file_descriptor, messages_allowlist); } } } -- cgit v1.2.3-59-g8ed1b