diff options
author | nharmata <nharmata@google.com> | 2017-05-01 17:37:46 +0200 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2017-05-02 11:25:35 +0200 |
commit | 38b835097f9ae9a6062172b8a33ec2e2d1edde20 (patch) | |
tree | ddd5ac16ff3470bdc39193dd6b69fcab6de0ab5a /src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java | |
parent | 2b49f678a7dfaf27afc0e44ed7a65b00ec06d413 (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.java | 13 |
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/<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/<fragment>/rule/dir/name. + */ + public final PathFragment getUniqueDirectory(PathFragment fragment) { + return AnalysisUtils.getUniqueDirectory(getLabel(), fragment); } /** |