aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
diff options
context:
space:
mode:
authorGravatar nharmata <nharmata@google.com>2017-05-01 17:37:46 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-05-02 11:25:35 +0200
commit38b835097f9ae9a6062172b8a33ec2e2d1edde20 (patch)
treeddd5ac16ff3470bdc39193dd6b69fcab6de0ab5a /src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
parent2b49f678a7dfaf27afc0e44ed7a65b00ec06d413 (diff)
Only allocate some formerly frequently allocated PathFragment objects once.
This reduces both gc churn and retained memory usage. PiperOrigin-RevId: 154718782
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index f47b38d006..681c88b45a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -1260,7 +1260,18 @@ public final class RuleContext extends TargetContext
* <p>For example "pkg/dir/name" -> "pkg/&lt;fragment>/rule/dir/name.
*/
public final PathFragment getUniqueDirectory(String fragment) {
- return AnalysisUtils.getUniqueDirectory(getLabel(), PathFragment.create(fragment));
+ return getUniqueDirectory(PathFragment.create(fragment));
+ }
+
+ /**
+ * Returns a path fragment qualified by the rule name and unique fragment to
+ * disambiguate artifacts produced from the source file appearing in
+ * multiple rules.
+ *
+ * <p>For example "pkg/dir/name" -> "pkg/&lt;fragment>/rule/dir/name.
+ */
+ public final PathFragment getUniqueDirectory(PathFragment fragment) {
+ return AnalysisUtils.getUniqueDirectory(getLabel(), fragment);
}
/**