summaryrefslogtreecommitdiffstats
path: root/jack
diff options
context:
space:
mode:
authorBenoit Lamarche <benoitlamarche@google.com>2015-02-12 15:39:26 +0100
committerBenoit Lamarche <benoitlamarche@google.com>2015-05-29 11:49:31 +0200
commitb34fb65587616cb9da9fd30affa5bf1f49428dae (patch)
tree4bbd5ec2ebf3cce5d7a9c35589d44fbf85c8354d /jack
parent21fe55835a54f27ddb4e239d1b88907874b62feb (diff)
downloadtoolchain_jack-b34fb65587616cb9da9fd30affa5bf1f49428dae.zip
toolchain_jack-b34fb65587616cb9da9fd30affa5bf1f49428dae.tar.gz
toolchain_jack-b34fb65587616cb9da9fd30affa5bf1f49428dae.tar.bz2
Add new getPathFromRoot API in VFS
And use it to remove JayceFileImporter hack. (cherry picked from commit 7a73a0418d5524240b7c97d9801b7db954aa018c) Change-Id: I211bc52211d7373c22a02d83be114774ebca7520
Diffstat (limited to 'jack')
-rw-r--r--jack/src/com/android/jack/backend/jayce/JayceFileImporter.java28
-rw-r--r--jack/src/com/android/jack/shrob/obfuscation/resource/RefinedVFile.java7
2 files changed, 9 insertions, 26 deletions
diff --git a/jack/src/com/android/jack/backend/jayce/JayceFileImporter.java b/jack/src/com/android/jack/backend/jayce/JayceFileImporter.java
index 5683d55..4c14ae6 100644
--- a/jack/src/com/android/jack/backend/jayce/JayceFileImporter.java
+++ b/jack/src/com/android/jack/backend/jayce/JayceFileImporter.java
@@ -40,9 +40,7 @@ import com.android.sched.util.codec.VariableName;
import com.android.sched.util.config.HasKeyId;
import com.android.sched.util.config.ThreadConfig;
import com.android.sched.util.config.id.PropertyId;
-import com.android.sched.util.location.FileLocation;
import com.android.sched.util.location.Location;
-import com.android.sched.util.location.ZipLocation;
import com.android.sched.util.log.Event;
import com.android.sched.util.log.LoggerFactory;
import com.android.sched.util.log.Tracer;
@@ -127,7 +125,7 @@ public class JayceFileImporter {
Iterator<InputVFile> jayceFileIt = jackLibrary.iterator(FileType.JAYCE);
while (jayceFileIt.hasNext()) {
InputVFile jayceFile = jayceFileIt.next();
- String name = getNameFromInputVFile(jackLibrary, jayceFile, FileType.JAYCE);
+ String name = jayceFile.getPathFromRoot().getPathAsString('/');
try {
addImportedTypes(session, name, jackLibrary);
} catch (JLookupException e) {
@@ -144,7 +142,7 @@ public class JayceFileImporter {
Iterator<InputVFile> rscFileIt = jackLibrary.iterator(FileType.RSC);
while (rscFileIt.hasNext()) {
InputVFile rscFile = rscFileIt.next();
- String name = getNameFromInputVFile(jackLibrary, rscFile, FileType.RSC);
+ String name = rscFile.getPathFromRoot().getPathAsString('/');
try {
addImportedResource(rscFile, session, name);
} catch (ResourceImportConflictException e) {
@@ -158,28 +156,6 @@ public class JayceFileImporter {
}
}
- // TODO(jack-team): remove this hack
- @Nonnull
- private String getNameFromInputVFile(@Nonnull InputJackLibrary jackLibrary,
- @Nonnull InputVFile jayceFile, @Nonnull FileType fileType) {
- Location loc = jayceFile.getLocation();
- String name;
- if (loc instanceof ZipLocation) {
- name = ((ZipLocation) jayceFile.getLocation()).getEntryName();
- if (jackLibrary.getMajorVersion() != 0) {
- name = name.substring(
- fileType.buildDirVPath(VPath.ROOT).split().iterator().next().length() + 1);
- }
- } else {
- name = ((FileLocation) jayceFile.getLocation()).getPath();
- if (jackLibrary.getMajorVersion() != 0) {
- String prefix = fileType.buildDirVPath(VPath.ROOT).split().iterator().next() + '/';
- name = name.substring(name.lastIndexOf(prefix) + prefix.length());
- }
- }
- return name;
- }
-
private void addImportedTypes(@Nonnull JSession session, @Nonnull String path,
@Nonnull InputLibrary intendedInputLibrary) throws TypeImportConflictException,
JTypeLookupException {
diff --git a/jack/src/com/android/jack/shrob/obfuscation/resource/RefinedVFile.java b/jack/src/com/android/jack/shrob/obfuscation/resource/RefinedVFile.java
index deedb67..b8d81b5 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/resource/RefinedVFile.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/resource/RefinedVFile.java
@@ -21,6 +21,7 @@ import com.android.sched.util.file.WrongPermissionException;
import com.android.sched.util.location.Location;
import com.android.sched.vfs.AbstractVElement;
import com.android.sched.vfs.InputVFile;
+import com.android.sched.vfs.VPath;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -277,4 +278,10 @@ public class RefinedVFile extends AbstractVElement implements InputVFile {
public void delete() throws CannotDeleteFileException {
file.delete();
}
+
+ @Override
+ @Nonnull
+ public VPath getPathFromRoot() {
+ return file.getPathFromRoot();
+ }
}