From 38b835097f9ae9a6062172b8a33ec2e2d1edde20 Mon Sep 17 00:00:00 2001 From: nharmata Date: Mon, 1 May 2017 17:37:46 +0200 Subject: Only allocate some formerly frequently allocated PathFragment objects once. This reduces both gc churn and retained memory usage. PiperOrigin-RevId: 154718782 --- .../com/google/devtools/build/lib/analysis/RuleContext.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java') 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 *

For example "pkg/dir/name" -> "pkg/<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. + * + *

For example "pkg/dir/name" -> "pkg/<fragment>/rule/dir/name. + */ + public final PathFragment getUniqueDirectory(PathFragment fragment) { + return AnalysisUtils.getUniqueDirectory(getLabel(), fragment); } /** -- cgit v1.2.3