Automated rollback of commit 7b923862c5d8d16c84c50dd1a3b8c6584b729b21.
*** Reason for rollback ***
Performance regression in nightly on yt-web b/211971772
*** Original change description ***
Use literals for format flags in proto_common call.
This should save some memory allocations.
PiperOrigin-RevId: 419592637
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
index 8a0a1fb..f6083b1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoCompileActionBuilder.java
@@ -66,12 +66,11 @@
private final ProtoInfo protoInfo;
private final FilesToRunProvider protoCompiler;
private final String progressMessage;
+ private final String langPrefix;
private final Iterable<Artifact> outputs;
private Iterable<Artifact> inputs;
private FilesToRunProvider langPlugin;
- private String langPluginFormat;
private Supplier<String> langPluginParameter;
- private String langPluginParameterFormat;
private boolean hasServices;
private Iterable<String> additionalCommandLineArguments;
private Iterable<FilesToRunProvider> additionalTools;
@@ -88,10 +87,8 @@
return this;
}
- public ProtoCompileActionBuilder setLangPlugin(
- FilesToRunProvider langPlugin, String langPluginFormat) {
+ public ProtoCompileActionBuilder setLangPlugin(FilesToRunProvider langPlugin) {
this.langPlugin = langPlugin;
- this.langPluginFormat = langPluginFormat;
return this;
}
@@ -100,10 +97,8 @@
return this;
}
- public ProtoCompileActionBuilder setLangPluginParameter(
- Supplier<String> langPluginParameter, String langPluginParameterFormat) {
+ public ProtoCompileActionBuilder setLangPluginParameter(Supplier<String> langPluginParameter) {
this.langPluginParameter = langPluginParameter;
- this.langPluginParameterFormat = langPluginParameterFormat;
return this;
}
@@ -128,10 +123,12 @@
ProtoInfo protoInfo,
FilesToRunProvider protoCompiler,
String progressMessage,
+ String langPrefix,
Iterable<Artifact> outputs) {
this.protoInfo = protoInfo;
this.protoCompiler = protoCompiler;
this.progressMessage = progressMessage;
+ this.langPrefix = langPrefix;
this.outputs = outputs;
this.mnemonic = DEFAULT_MNEMONIC;
}
@@ -175,11 +172,14 @@
if (langPlugin != null && langPlugin.getExecutable() != null) {
// We pass a separate langPlugin as there are plugins that cannot be overridden
// and thus we have to deal with "$xx_plugin" and "xx_plugin".
- additionalArgs.add(Tuple.of(langPlugin.getExecutable(), langPluginFormat));
+ additionalArgs.add(
+ Tuple.of(
+ langPlugin.getExecutable(), String.format("--plugin=protoc-gen-%s=%%s", langPrefix)));
}
if (langPluginParameter != null) {
- additionalArgs.add(Tuple.of(langPluginParameter.get(), langPluginParameterFormat));
+ additionalArgs.add(
+ Tuple.of(langPluginParameter.get(), String.format("--%s_out=%%s", langPrefix)));
}
if (!hasServices) {