aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/actions
diff options
context:
space:
mode:
authorGravatar nharmata <nharmata@google.com>2017-04-04 17:11:39 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-04-05 15:18:20 +0200
commitb4060b6e53944a7c3bdc5e62b288e7293a87652a (patch)
tree59b0f1f3d3e8e99412e060bb98b5a37fe90d9b6e /src/main/java/com/google/devtools/build/lib/actions
parent3ac77cb94a4cf1bd1993a97fe79f2005b2b1a711 (diff)
Refactor all ctor callsites of PathFragment to instead call a static 'create' method.
This paves the way for changing PathFragment to e.g. an abstract class with multiple subclasses. This way we can split out the windows-specific stuff into one of these concrete classes, making the code more readable and also saving memory (since the shallow heap size of the NonWindowsPathFragment subclass will hopefully be smaller than that of the current PathFragment). This also lets us pursue gc churn optimizations. We can now do interning in PathFragment#create and can also get rid of unnecessary intermediate PathFragment allocations. RELNOTES: None PiperOrigin-RevId: 152145768
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/actions')
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/Artifact.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/MiddlemanFactory.java6
5 files changed, 8 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java b/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java
index 16f926a2fc..b5d6c1ce62 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java
@@ -340,7 +340,7 @@ public class ActionCacheChecker {
}
List<PathFragment> inputExecPaths = new ArrayList<>();
for (String path : entry.getPaths()) {
- PathFragment execPath = new PathFragment(path);
+ PathFragment execPath = PathFragment.create(path);
// Code assumes that action has only 1-2 outputs and ArrayList.contains() will be
// most efficient.
if (!outputs.contains(execPath)) {
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java b/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java
index c63fd5b93a..c4567d8ce4 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java
@@ -81,7 +81,7 @@ public final class ActionInputHelper {
@Override
public PathFragment getExecPath() {
- return new PathFragment(path);
+ return PathFragment.create(path);
}
@Override
@@ -170,7 +170,7 @@ public final class ActionInputHelper {
* relative to that Artifact.
*/
public static TreeFileArtifact treeFileArtifact(Artifact parent, String relativePath) {
- return treeFileArtifact(parent, new PathFragment(relativePath));
+ return treeFileArtifact(parent, PathFragment.create(relativePath));
}
/** Returns an Iterable of TreeFileArtifacts with the given parent and parent relative paths. */
diff --git a/src/main/java/com/google/devtools/build/lib/actions/Artifact.java b/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
index a5b865f023..7c6a87087b 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/Artifact.java
@@ -547,7 +547,7 @@ public class Artifact
&& relativePath.getSegment(0).equals(Label.EXTERNAL_PATH_PREFIX)) {
// Turn external/repo/foo into ../repo/foo.
relativePath = relativePath.relativeTo(Label.EXTERNAL_PATH_PREFIX);
- relativePath = new PathFragment("..").getRelative(relativePath);
+ relativePath = PathFragment.create("..").getRelative(relativePath);
}
return relativePath;
}
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java b/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java
index 3f2f360259..ddeb001339 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ArtifactFactory.java
@@ -127,7 +127,7 @@ public class ArtifactFactory implements ArtifactResolver, ArtifactSerializer, Ar
*/
public ArtifactFactory(Path execRootParent, String derivedPathPrefix) {
this.execRootParent = execRootParent;
- this.derivedPathPrefix = new PathFragment(derivedPathPrefix);
+ this.derivedPathPrefix = PathFragment.create(derivedPathPrefix);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/actions/MiddlemanFactory.java b/src/main/java/com/google/devtools/build/lib/actions/MiddlemanFactory.java
index 404b0de10d..2a19d03a37 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/MiddlemanFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/MiddlemanFactory.java
@@ -175,8 +175,8 @@ public final class MiddlemanFactory {
PathFragment packageDirectory, String purpose, Iterable<Artifact> inputs, Root middlemanDir) {
String escapedPackageDirectory = Actions.escapedPath(packageDirectory.getPathString());
PathFragment stampName =
- new PathFragment("_middlemen/" + (purpose.startsWith(escapedPackageDirectory)
- ? purpose : (escapedPackageDirectory + purpose)));
+ PathFragment.create("_middlemen/" + (purpose.startsWith(escapedPackageDirectory)
+ ? purpose : (escapedPackageDirectory + purpose)));
Artifact stampFile = artifactFactory.getDerivedArtifact(stampName, middlemanDir,
actionRegistry.getOwner());
MiddlemanAction.create(
@@ -186,7 +186,7 @@ public final class MiddlemanFactory {
private Artifact getStampFileArtifact(String middlemanName, String purpose, Root middlemanDir) {
String escapedFilename = Actions.escapedPath(middlemanName);
- PathFragment stampName = new PathFragment("_middlemen/" + escapedFilename + "-" + purpose);
+ PathFragment stampName = PathFragment.create("_middlemen/" + escapedFilename + "-" + purpose);
Artifact stampFile = artifactFactory.getDerivedArtifact(stampName, middlemanDir,
actionRegistry.getOwner());
return stampFile;