Description redacted.
--
MOS_MIGRATED_REVID=101221537
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java b/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java
index e8fdf36..de7a958 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/PathFragment.java
@@ -81,6 +81,15 @@
}
};
+ /** Lower-level API. Create a PathFragment, interning segments. */
+ public static PathFragment create(char driveLetter, boolean isAbsolute, String[] segments) {
+ String[] internedSegments = new String[segments.length];
+ for (int i = 0; i < segments.length; i++) {
+ internedSegments[i] = StringCanonicalizer.intern(segments[i]);
+ }
+ return new PathFragment(driveLetter, isAbsolute, segments);
+ }
+
// We have 3 word-sized fields (segments, hashCode and path), and 2
// byte-sized ones, which fits in 16 bytes. Object sizes are rounded
// to 16 bytes. Medium sized builds can easily hold millions of
@@ -578,6 +587,11 @@
return (driveLetter != '\0') ? driveLetter + ":" : "";
}
+ /** Return the drive letter or '\0' if not applicable. */
+ public char getDriveLetter() {
+ return driveLetter;
+ }
+
/**
* Returns the number of segments in this path.
*/