diff options
author | 2017-05-02 14:23:36 +0200 | |
---|---|---|
committer | 2017-05-02 15:44:33 +0200 | |
commit | 7beadb7277453efec7e12b925005e7f0e003b592 (patch) | |
tree | ab5ebab351566289fb5f0f1f44023c8b038f40e9 /src/main/java/com/google/devtools/build | |
parent | adb15a606e42dc4feac03353c8b2587c5d3c78c6 (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')
19 files changed, 44 insertions, 104 deletions
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 74c7682f09..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 @@ -543,7 +543,8 @@ public class Artifact */ public final PathFragment getRunfilesPath() { PathFragment relativePath = rootRelativePath; - if (relativePath.startsWith(Label.EXTERNAL_PATH_PREFIX)) { + if (relativePath.segmentCount() > 1 + && relativePath.getSegment(0).equals(Label.EXTERNAL_PATH_PREFIX)) { // Turn external/repo/foo into ../repo/foo. relativePath = relativePath.relativeTo(Label.EXTERNAL_PATH_PREFIX); relativePath = PathFragment.create("..").getRelative(relativePath); 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 681c88b45a..f47b38d006 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,18 +1260,7 @@ public final class RuleContext extends TargetContext * <p>For example "pkg/dir/name" -> "pkg/<fragment>/rule/dir/name. */ public final PathFragment getUniqueDirectory(String 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); + return AnalysisUtils.getUniqueDirectory(getLabel(), PathFragment.create(fragment)); } /** diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java index 3273a6d3e6..9e11f94270 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java @@ -1168,7 +1168,7 @@ public final class BuildConfiguration { INCLUDE(BlazeDirectories.RELATIVE_INCLUDE_DIR), OUTPUT(false); - private final PathFragment nameFragment; + private final String name; private final boolean middleman; /** @@ -1177,12 +1177,12 @@ public final class BuildConfiguration { * @param isMiddleman whether the root should be a middleman root or a "normal" derived root. */ OutputDirectory(boolean isMiddleman) { - this.nameFragment = PathFragment.EMPTY_FRAGMENT; + this.name = ""; this.middleman = isMiddleman; } OutputDirectory(String name) { - this.nameFragment = PathFragment.create(name); + this.name = name; this.middleman = false; } @@ -1198,28 +1198,15 @@ public final class BuildConfiguration { } // e.g., [[execroot/repo1]/bazel-out/config/bin] return INTERNER.intern( - Root.asDerivedRoot( - execRoot, - outputDir.getRelative(nameFragment), - repositoryName.isMain())); + Root.asDerivedRoot(execRoot, outputDir.getRelative(name), repositoryName.isMain())); } } - private final BlazeDirectories directories; - private final String outputDirName; - - // We intern the roots for non-main repositories, so we don't keep around thousands of copies of - // the same root. + // "Cache" of roots, so we don't keep around thousands of copies of the same root. private static Interner<Root> INTERNER = Interners.newWeakInterner(); - // We precompute the roots for the main repository, since that's the common case. - private final Root outputDirectoryForMainRepository; - private final Root binDirectoryForMainRepository; - private final Root includeDirectoryForMainRepository; - private final Root genfilesDirectoryForMainRepository; - private final Root coverageDirectoryForMainRepository; - private final Root testlogsDirectoryForMainRepository; - private final Root middlemanDirectoryForMainRepository; + private final BlazeDirectories directories; + private final String outputDirName; /** If false, AnalysisEnviroment doesn't register any actions created by the ConfiguredTarget. */ private final boolean actionsEnabled; @@ -1457,22 +1444,6 @@ public final class BuildConfiguration { this.mnemonic = buildMnemonic(); this.outputDirName = (options.outputDirectoryName != null) ? options.outputDirectoryName : mnemonic; - - this.outputDirectoryForMainRepository = - OutputDirectory.OUTPUT.getRoot(RepositoryName.MAIN, outputDirName, directories); - this.binDirectoryForMainRepository = - OutputDirectory.BIN.getRoot(RepositoryName.MAIN, outputDirName, directories); - this.includeDirectoryForMainRepository = - OutputDirectory.INCLUDE.getRoot(RepositoryName.MAIN, outputDirName, directories); - this.genfilesDirectoryForMainRepository = - OutputDirectory.GENFILES.getRoot(RepositoryName.MAIN, outputDirName, directories); - this.coverageDirectoryForMainRepository = - OutputDirectory.COVERAGE.getRoot(RepositoryName.MAIN, outputDirName, directories); - this.testlogsDirectoryForMainRepository = - OutputDirectory.TESTLOGS.getRoot(RepositoryName.MAIN, outputDirName, directories); - this.middlemanDirectoryForMainRepository = - OutputDirectory.MIDDLEMAN.getRoot(RepositoryName.MAIN, outputDirName, directories); - this.platformName = buildPlatformName(); this.shellExecutable = computeShellExecutable(); @@ -2097,9 +2068,7 @@ public final class BuildConfiguration { * Returns the output directory for this build configuration. */ public Root getOutputDirectory(RepositoryName repositoryName) { - return repositoryName.equals(RepositoryName.MAIN) - ? outputDirectoryForMainRepository - : OutputDirectory.OUTPUT.getRoot(repositoryName, outputDirName, directories); + return OutputDirectory.OUTPUT.getRoot(repositoryName, outputDirName, directories); } /** @@ -2118,9 +2087,7 @@ public final class BuildConfiguration { * repositories (external) but will need to be fixed. */ public Root getBinDirectory(RepositoryName repositoryName) { - return repositoryName.equals(RepositoryName.MAIN) - ? binDirectoryForMainRepository - : OutputDirectory.BIN.getRoot(repositoryName, outputDirName, directories); + return OutputDirectory.BIN.getRoot(repositoryName, outputDirName, directories); } /** @@ -2134,9 +2101,7 @@ public final class BuildConfiguration { * Returns the include directory for this build configuration. */ public Root getIncludeDirectory(RepositoryName repositoryName) { - return repositoryName.equals(RepositoryName.MAIN) - ? includeDirectoryForMainRepository - : OutputDirectory.INCLUDE.getRoot(repositoryName, outputDirName, directories); + return OutputDirectory.INCLUDE.getRoot(repositoryName, outputDirName, directories); } /** @@ -2149,9 +2114,7 @@ public final class BuildConfiguration { } public Root getGenfilesDirectory(RepositoryName repositoryName) { - return repositoryName.equals(RepositoryName.MAIN) - ? genfilesDirectoryForMainRepository - : OutputDirectory.GENFILES.getRoot(repositoryName, outputDirName, directories); + return OutputDirectory.GENFILES.getRoot(repositoryName, outputDirName, directories); } /** @@ -2160,18 +2123,14 @@ public final class BuildConfiguration { * needed for Jacoco's coverage reporting tools. */ public Root getCoverageMetadataDirectory(RepositoryName repositoryName) { - return repositoryName.equals(RepositoryName.MAIN) - ? coverageDirectoryForMainRepository - : OutputDirectory.COVERAGE.getRoot(repositoryName, outputDirName, directories); + return OutputDirectory.COVERAGE.getRoot(repositoryName, outputDirName, directories); } /** * Returns the testlogs directory for this build configuration. */ public Root getTestLogsDirectory(RepositoryName repositoryName) { - return repositoryName.equals(RepositoryName.MAIN) - ? testlogsDirectoryForMainRepository - : OutputDirectory.TESTLOGS.getRoot(repositoryName, outputDirName, directories); + return OutputDirectory.TESTLOGS.getRoot(repositoryName, outputDirName, directories); } /** @@ -2198,9 +2157,7 @@ public final class BuildConfiguration { * Returns the internal directory (used for middlemen) for this build configuration. */ public Root getMiddlemanDirectory(RepositoryName repositoryName) { - return repositoryName.equals(RepositoryName.MAIN) - ? middlemanDirectoryForMainRepository - : OutputDirectory.MIDDLEMAN.getRoot(repositoryName, outputDirName, directories); + return OutputDirectory.MIDDLEMAN.getRoot(repositoryName, outputDirName, directories); } public boolean getAllowRuntimeDepsOnNeverLink() { diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java index 29ccba94c4..ac6d574c93 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java @@ -207,7 +207,7 @@ public class BazelPythonSemantics implements PythonSemantics { } private static boolean isUnderWorkspace(PathFragment path) { - return !path.startsWith(Label.EXTERNAL_PATH_PREFIX); + return !path.startsWith(PathFragment.create(Label.EXTERNAL_PATH_PREFIX)); } private static String getZipRunfilesPath(PathFragment path, PathFragment workspaceName) { diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java index ef62fc1be8..4bc5a4caae 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java @@ -72,7 +72,7 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin public static final PackageIdentifier EXTERNAL_PACKAGE_IDENTIFIER = PackageIdentifier.createInMainRepo(EXTERNAL_PACKAGE_NAME); - public static final PathFragment EXTERNAL_PATH_PREFIX = PathFragment.create("external"); + public static final String EXTERNAL_PATH_PREFIX = "external"; private static final Interner<Label> LABEL_INTERNER = BlazeInterners.newWeakInterner(); diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java index 8640f261de..2deba307a0 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/PackageIdentifier.java @@ -79,7 +79,7 @@ public final class PackageIdentifier implements Comparable<PackageIdentifier>, S ? Preconditions.checkNotNull( execPath.getParentDirectory(), "Must pass in files, not root directory") : execPath; - if (tofind.startsWith(Label.EXTERNAL_PATH_PREFIX)) { + if (tofind.startsWith(PathFragment.create(Label.EXTERNAL_PATH_PREFIX))) { // TODO(ulfjack): Remove this when kchodorow@'s exec root rearrangement has been rolled out. RepositoryName repository = RepositoryName.create("@" + tofind.getSegment(1)); return PackageIdentifier.create(repository, tofind.subFragment(2, tofind.segmentCount())); diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java index b0089787de..b9564e79c5 100644 --- a/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java +++ b/src/main/java/com/google/devtools/build/lib/cmdline/RepositoryName.java @@ -139,7 +139,7 @@ public final class RepositoryName implements Serializable { * was invalid. */ public static Pair<RepositoryName, PathFragment> fromPathFragment(PathFragment path) { - if (path.segmentCount() < 2 || !path.startsWith(Label.EXTERNAL_PATH_PREFIX)) { + if (path.segmentCount() < 2 || !path.getSegment(0).equals(Label.EXTERNAL_PATH_PREFIX)) { return null; } try { @@ -202,7 +202,7 @@ public final class RepositoryName implements Serializable { } /** - * Returns if this is the main repository, that is, {@link #name} is "@". + * Returns if this is the default repository, that is, {@link #name} is "@". */ public boolean isMain() { return name.equals("@"); @@ -232,7 +232,7 @@ public final class RepositoryName implements Serializable { public PathFragment getPathUnderExecRoot() { return isDefault() || isMain() ? PathFragment.EMPTY_FRAGMENT - : Label.EXTERNAL_PATH_PREFIX.getRelative(strippedName()); + : PathFragment.create(Label.EXTERNAL_PATH_PREFIX).getRelative(strippedName()); } /** diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java b/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java index 223b0c4483..f828538419 100644 --- a/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java @@ -45,7 +45,6 @@ import java.util.concurrent.atomic.AtomicReference; * filesystem) idempotent. */ public class PathPackageLocator implements Serializable { - private static final PathFragment BUILD_PATH_FRAGMENT = PathFragment.create("BUILD"); public static final ImmutableSet<String> DEFAULT_TOP_LEVEL_EXCLUDES = ImmutableSet.of("experimental"); @@ -102,8 +101,7 @@ public class PathPackageLocator implements Serializable { AtomicReference<? extends UnixGlob.FilesystemCalls> cache) { Preconditions.checkArgument(!packageIdentifier.getRepository().isDefault()); if (packageIdentifier.getRepository().isMain()) { - return getFilePath( - packageIdentifier.getPackageFragment().getRelative(BUILD_PATH_FRAGMENT), cache); + return getFilePath(packageIdentifier.getPackageFragment().getRelative("BUILD"), cache); } else { Verify.verify(outputBase != null, String.format( "External package '%s' needs to be loaded but this PathPackageLocator instance does not " @@ -113,7 +111,7 @@ public class PathPackageLocator implements Serializable { // is true for the invocation in GlobCache, but not for the locator.getBuildFileForPackage() // invocation in Parser#include(). Path buildFile = outputBase.getRelative( - packageIdentifier.getSourceRoot()).getRelative(BUILD_PATH_FRAGMENT); + packageIdentifier.getSourceRoot()).getRelative("BUILD"); try { FileStatus stat = cache.get().statIfFound(buildFile, Symlinks.FOLLOW); if (stat != null && stat.isFile()) { 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) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java index e7b9c7c1cd..5389023701 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationHelper.java @@ -71,7 +71,6 @@ public final class JavaCompilationHelper { private final ImmutableList<Artifact> additionalJavaBaseInputs; private static final String DEFAULT_ATTRIBUTES_SUFFIX = ""; - private static final PathFragment JAVAC = PathFragment.create("_javac"); public JavaCompilationHelper(RuleContext ruleContext, JavaSemantics semantics, ImmutableList<String> javacOpts, JavaTargetAttributes.Builder attributes, @@ -565,7 +564,7 @@ public final class JavaCompilationHelper { private PathFragment workDir(Artifact outputJar, String suffix) { String basename = FileSystemUtils.removeExtension(outputJar.getExecPath().getBaseName()); return getConfiguration().getBinDirectory(ruleContext.getRule().getRepository()).getExecPath() - .getRelative(ruleContext.getUniqueDirectory(JAVAC)) + .getRelative(ruleContext.getUniqueDirectory("_javac")) .getRelative(basename + suffix); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java index ba324e670d..8de811fe03 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java @@ -34,8 +34,6 @@ import com.google.devtools.build.lib.vfs.PathFragment; // TODO(bazel-team): This should really be named DerivedArtifacts as it contains methods for // final as well as intermediate artifacts. public final class IntermediateArtifacts { - private static final PathFragment OBJS = PathFragment.create("_objs"); - static final String LINKMAP_SUFFIX = ".linkmap"; /** @@ -277,7 +275,8 @@ public final class IntermediateArtifacts { } private Artifact inUniqueObjsDir(Artifact source, String extension) { - PathFragment uniqueDir = OBJS.getRelative(ruleContext.getLabel().getName()); + PathFragment uniqueDir = + PathFragment.create("_objs").getRelative(ruleContext.getLabel().getName()); PathFragment sourceFile = uniqueDir.getRelative(source.getRootRelativePath()); PathFragment scopeRelativePath = FileSystemUtils.replaceExtension(sourceFile, extension); return scopedArtifact(scopeRelativePath); diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryFunction.java index 8d7e3eb5b2..490b1f6324 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryFunction.java @@ -100,7 +100,7 @@ public class LocalRepositoryFunction extends RepositoryFunction { directory.getRoot(), directory .getRelativePath() - .getRelative(PackageLookupValue.BuildFileName.WORKSPACE.getFilenameFragment())); + .getChild(PackageLookupValue.BuildFileName.WORKSPACE.getFilename())); SkyKey workspaceFileKey = FileValue.key(workspaceRootedFile); FileValue value; diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java index e6f3837212..20c26b5942 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java @@ -473,7 +473,8 @@ public abstract class RepositoryFunction { if (repositoryPath.segmentCount() > 1) { if (rule.getRuleClass().equals(LocalRepositoryRule.NAME) - && repositoryPath.endsWith(BuildFileName.WORKSPACE.getFilenameFragment())) { + && repositoryPath.endsWith( + PathFragment.create(BuildFileName.WORKSPACE.getFilename()))) { // Ignore this, there is a dependency from LocalRepositoryFunction->WORKSPACE file already return; } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java index 732620342d..ae4b250971 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunction.java @@ -94,7 +94,7 @@ public class LocalRepositoryLookupFunction implements SkyFunction { directory.getRoot(), directory .getRelativePath() - .getRelative(PackageLookupValue.BuildFileName.WORKSPACE.getFilenameFragment())); + .getChild(PackageLookupValue.BuildFileName.WORKSPACE.getFilename())); FileValue workspaceFileValue = (FileValue) env.getValueOrThrow( diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java index c0a115ad6c..e427c34085 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupFunction.java @@ -315,7 +315,7 @@ public class PackageLookupFunction implements SkyFunction { // This checks for the build file names in the correct precedence order. for (BuildFileName buildFileName : buildFilesByPriority) { PathFragment buildFileFragment = - id.getPackageFragment().getRelative(buildFileName.getFilenameFragment()); + id.getPackageFragment().getChild(buildFileName.getFilename()); RootedPath buildFileRootedPath = RootedPath.toRootedPath(repositoryValue.getPath(), buildFileFragment); FileValue fileValue = getFileValue(buildFileRootedPath, env, packageIdentifier); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java index 79f6a41679..5ed0e55e5c 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java @@ -43,32 +43,32 @@ public abstract class PackageLookupValue implements SkyValue { WORKSPACE("WORKSPACE") { @Override public PathFragment getBuildFileFragment(PackageIdentifier packageIdentifier) { - return getFilenameFragment(); + return PathFragment.create(BuildFileName.WORKSPACE.getFilename()); } }, BUILD("BUILD") { @Override public PathFragment getBuildFileFragment(PackageIdentifier packageIdentifier) { - return packageIdentifier.getPackageFragment().getRelative(getFilenameFragment()); + return packageIdentifier.getPackageFragment().getChild(getFilename()); } }, BUILD_DOT_BAZEL("BUILD.bazel") { @Override public PathFragment getBuildFileFragment(PackageIdentifier packageIdentifier) { - return packageIdentifier.getPackageFragment().getRelative(getFilenameFragment()); + return packageIdentifier.getPackageFragment().getChild(getFilename()); } }; private static final BuildFileName[] VALUES = BuildFileName.values(); - private final PathFragment filenameFragment; + private final String filename; private BuildFileName(String filename) { - this.filenameFragment = PathFragment.create(filename); + this.filename = filename; } - public PathFragment getFilenameFragment() { - return filenameFragment; + public String getFilename() { + return filename; } /** |