summaryrefslogtreecommitdiffstats
path: root/jack
diff options
context:
space:
mode:
authorBenoit Lamarche <benoitlamarche@google.com>2015-04-10 12:43:43 +0200
committerBenoit Lamarche <benoitlamarche@google.com>2015-04-28 11:20:18 +0200
commitc686beadd52f2bc7c218bcfb88153e2a2cbd20e4 (patch)
tree5c734410137ddf8a41382b04262593b9b3776ce9 /jack
parent0052bd19d1ba42d883f3999cb7518d32979a7964 (diff)
downloadtoolchain_jack-c686beadd52f2bc7c218bcfb88153e2a2cbd20e4.zip
toolchain_jack-c686beadd52f2bc7c218bcfb88153e2a2cbd20e4.tar.gz
toolchain_jack-c686beadd52f2bc7c218bcfb88153e2a2cbd20e4.tar.bz2
Rework ReadWriteZipFS to support incremental library
Change-Id: Id0fbc89e68ac3166447024ab9f2c040e02447e56
Diffstat (limited to 'jack')
-rw-r--r--jack/src/com/android/jack/Jack.java14
-rw-r--r--jack/src/com/android/jack/Options.java6
-rw-r--r--jack/src/com/android/jack/incremental/IncrementalInputFilter.java19
3 files changed, 17 insertions, 22 deletions
diff --git a/jack/src/com/android/jack/Jack.java b/jack/src/com/android/jack/Jack.java
index aba7be9..b25fc4c 100644
--- a/jack/src/com/android/jack/Jack.java
+++ b/jack/src/com/android/jack/Jack.java
@@ -265,8 +265,6 @@ import com.android.sched.util.log.LoggerFactory;
import com.android.sched.util.log.Tracer;
import com.android.sched.util.log.TracerFactory;
import com.android.sched.vfs.Container;
-import com.android.sched.vfs.VFS;
-import com.android.sched.vfs.VFSToVFSWrapper;
import org.antlr.runtime.RecognitionException;
@@ -606,18 +604,6 @@ public abstract class Jack {
&& config.get(Options.DEX_OUTPUT_CONTAINER_TYPE) == Container.ZIP) {
config.get(Options.DEX_OUTPUT_ZIP).close();
}
-
- if (config.get(Options.GENERATE_LIBRARY_FROM_INCREMENTAL_FOLDER).booleanValue()) {
- VFS incrementalFolder = config.get(Options.LIBRARY_OUTPUT_DIR);
- Event timeToZip =
- TracerFactory.getTracer().start(JackEventType.ZIP_JACK_LIBRARY_IN_INCREMENTAL);
- try {
- new VFSToVFSWrapper(incrementalFolder, config.get(Options.LIBRARY_OUTPUT_ZIP))
- .close();
- } finally {
- timeToZip.end();
- }
- }
} catch (LibraryIOException e) {
throw new AssertionError(e);
} catch (IOException e) {
diff --git a/jack/src/com/android/jack/Options.java b/jack/src/com/android/jack/Options.java
index 5e8fb7e..78005d2 100644
--- a/jack/src/com/android/jack/Options.java
+++ b/jack/src/com/android/jack/Options.java
@@ -840,13 +840,13 @@ public class Options {
if (incrementalFolder != null) {
if (multiDexKind == MultiDexKind.LEGACY) {
LoggerFactory.getLogger().log(Level.WARNING,
- "Incremental mode is disable due to multi-dex legacy mode");
+ "Incremental mode is disabled due to multi-dex legacy mode");
} else if (flags != null) {
LoggerFactory.getLogger().log(Level.WARNING,
- "Incremental mode is disable due to usage of shrink or obfuscation");
+ "Incremental mode is disabled due to usage of shrinking or obfuscation");
} else if (jarjarRulesFile != null) {
LoggerFactory.getLogger().log(Level.WARNING,
- "Incremental mode is disable due to usage of jarjar");
+ "Incremental mode is disabled due to usage of jarjar");
} else {
configBuilder.set(Options.INCREMENTAL_MODE, true);
configBuilder.setString(Options.INPUT_FILTER, "incremental");
diff --git a/jack/src/com/android/jack/incremental/IncrementalInputFilter.java b/jack/src/com/android/jack/incremental/IncrementalInputFilter.java
index 5d5a3d2..f925926 100644
--- a/jack/src/com/android/jack/incremental/IncrementalInputFilter.java
+++ b/jack/src/com/android/jack/incremental/IncrementalInputFilter.java
@@ -53,6 +53,7 @@ import com.android.sched.util.log.stats.Counter;
import com.android.sched.util.log.stats.CounterImpl;
import com.android.sched.util.log.stats.StatisticId;
import com.android.sched.vfs.InputVFile;
+import com.android.sched.vfs.ReadWriteZipFS;
import com.android.sched.vfs.VFS;
import com.android.sched.vfs.VPath;
@@ -467,11 +468,19 @@ public class IncrementalInputFilter extends CommonFilter implements InputFilter
@Override
@Nonnull
public OutputJackLibrary getOutputJackLibrary() {
- if (incrementalInputLibrary == null) {
- return getOutputJackLibraryFromVfs();
+ if (ThreadConfig.get(Options.GENERATE_LIBRARY_FROM_INCREMENTAL_FOLDER).booleanValue()) {
+ VFS dirVFS = ThreadConfig.get(Options.LIBRARY_OUTPUT_DIR);
+ ReadWriteZipFS zipVFS = (ReadWriteZipFS) ThreadConfig.get(Options.LIBRARY_OUTPUT_ZIP);
+ zipVFS.setWorkVFS(dirVFS);
+ return JackLibraryFactory.getOutputLibrary(zipVFS, Jack.getEmitterId(),
+ Jack.getVersion().getVerboseVersion());
+ } else {
+ if (incrementalInputLibrary == null) {
+ return getOutputJackLibraryFromVfs();
+ } else {
+ return (JackLibraryFactory.getOutputLibrary(ThreadConfig.get(Options.LIBRARY_OUTPUT_DIR),
+ Jack.getEmitterId(), Jack.getVersion().getVerboseVersion()));
+ }
}
-
- return (JackLibraryFactory.getOutputLibrary(ThreadConfig.get(Options.LIBRARY_OUTPUT_DIR),
- Jack.getEmitterId(), Jack.getVersion().getVerboseVersion()));
}
}