aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
diff options
context:
space:
mode:
authorGravatar dmarting <dmarting@google.com>2017-05-02 14:23:36 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-05-02 15:44:33 +0200
commit7beadb7277453efec7e12b925005e7f0e003b592 (patch)
treeab5ebab351566289fb5f0f1f44023c8b038f40e9 /src/main/java/com/google/devtools/build/lib/rules/cpp
parentadb15a606e42dc4feac03353c8b2587c5d3c78c6 (diff)
Automated g4 rollback of commit 38b835097f9ae9a6062172b8a33ec2e2d1edde20.
*** Reason for rollback *** Breaking Bazel build on linux, see http://ci.bazel.io/job/bazel-tests/733/ Repro: bazel build //src/test/java/com/google/devtools/build/lib:packages_test Found by bisecting. *** Original change description *** Only allocate some formerly frequently allocated PathFragment objects once. This reduces both gc churn and retained memory usage. RELNOTES: None PiperOrigin-RevId: 154821457
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java2
4 files changed, 4 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
index 1b1884ce8d..74d1d3cdb0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
@@ -110,8 +110,6 @@ public class CppCompileAction extends AbstractAction
}
};
- private static final PathFragment BUILD_PATH_FRAGMENT = PathFragment.create("BUILD");
-
private static final int VALIDATION_DEBUG = 0; // 0==none, 1==warns/errors, 2==all
private static final boolean VALIDATION_DEBUG_WARN = VALIDATION_DEBUG >= 1;
@@ -950,7 +948,7 @@ public class CppCompileAction extends AbstractAction
// Still not found: see if it is in a subdir of a declared package.
Path root = input.getRoot().getPath();
for (Path dir = input.getPath().getParentDirectory();;) {
- if (dir.getRelative(BUILD_PATH_FRAGMENT).exists()) {
+ if (dir.getRelative("BUILD").exists()) {
return false; // Bad: this is a sub-package, not a subdir of a declared package.
}
dir = dir.getParentDirectory();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
index 333361f193..693970c42e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
@@ -477,7 +477,7 @@ public class CppCompileActionBuilder {
continue;
}
// One starting ../ is okay for getting to a sibling repository.
- if (include.startsWith(Label.EXTERNAL_PATH_PREFIX)) {
+ if (include.startsWith(PathFragment.create(Label.EXTERNAL_PATH_PREFIX))) {
include = include.relativeTo(Label.EXTERNAL_PATH_PREFIX);
}
if (include.isAbsolute()
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
index aa719c80ed..41afb816ff 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppHelper.java
@@ -60,8 +60,6 @@ import javax.annotation.Nullable;
* <p>This class can be used only after the loading phase.
*/
public class CppHelper {
- static final PathFragment OBJS = PathFragment.create("_objs");
-
private static final String GREPPED_INCLUDES_SUFFIX = ".includes";
// TODO(bazel-team): should this use Link.SHARED_LIBRARY_FILETYPES?
@@ -285,7 +283,7 @@ public class CppHelper {
* Returns the directory where object files are created.
*/
public static PathFragment getObjDirectory(Label ruleLabel) {
- return AnalysisUtils.getUniqueDirectory(ruleLabel, OBJS);
+ return AnalysisUtils.getUniqueDirectory(ruleLabel, PathFragment.create("_objs"));
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
index 0c640ff818..b2a67113f8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
@@ -952,7 +952,7 @@ public class CppLinkActionBuilder {
PathFragment stampOutputDirectory =
outputBinaryPath
.getParentDirectory()
- .getRelative(CppHelper.OBJS)
+ .getRelative("_objs")
.getRelative(outputBinaryPath.getBaseName());
for (Artifact linkstamp : linkstamps) {