aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-05-26 03:05:46 +0000
committerGravatar Yue Gan <yueg@google.com>2016-05-27 08:44:58 +0000
commit09a6a7e3a517342f2347fb40fc52f5f8a45f055b (patch)
treead679c907df21d817fd3be9e08c3a07790bd85c1 /src
parent08c028501ea08b6f043f1e1cd1a0ff8d62d0fa64 (diff)
Defer converting IDE aspect output to string.
If we convert the aspect to a string it's kept in the analysis cache along with the original proto, even if the associated action is never used. -- MOS_MIGRATED_REVID=123280808
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
index 619150a553..be98426590 100644
--- a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java
@@ -41,7 +41,6 @@ import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.actions.BinaryFileWriteAction;
import com.google.devtools.build.lib.analysis.actions.CustomCommandLine;
-import com.google.devtools.build.lib.analysis.actions.FileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.cmdline.Label;
@@ -79,8 +78,10 @@ import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.protobuf.MessageLite;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.List;
@@ -536,12 +537,17 @@ public class AndroidStudioInfoAspect extends NativeAspectClass implements Config
/*makeExecutable =*/ false);
}
- private static FileWriteAction makeProtoTextWriteAction(
+ private static BinaryFileWriteAction makeProtoTextWriteAction(
ActionOwner actionOwner, final MessageLite message, Artifact artifact) {
- return new FileWriteAction(
+ return new BinaryFileWriteAction(
actionOwner,
artifact,
- message.toString(),
+ new ByteSource() {
+ @Override
+ public InputStream openStream() throws IOException {
+ return new ByteArrayInputStream(message.toString().getBytes(StandardCharsets.UTF_8));
+ }
+ },
/*makeExecutable =*/ false);
}