Author: [email protected]
Date: Wed Apr 1 15:01:41 2009
New Revision: 5155
Added:
changes/scottb/memory/dev/core/src/com/google/gwt/dev/util/arg/OptionCompilationStateRetained.java
Modified:
changes/scottb/memory/dev/core/src/com/google/gwt/dev/GWTShell.java
changes/scottb/memory/dev/core/src/com/google/gwt/dev/HostedMode.java
changes/scottb/memory/dev/core/src/com/google/gwt/dev/Precompile.java
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JJSOptions.java
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JJSOptionsImpl.java
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
changes/scottb/memory/dev/oophm/overlay/com/google/gwt/dev/GWTShell.java
Log:
SQUASH into: Clear out all the memory pinned by CompilationState once we're
done with it.
This change is necessary to make JUnit web mode go, and make hosted mode
less flaky.
Modified:
changes/scottb/memory/dev/core/src/com/google/gwt/dev/GWTShell.java
==============================================================================
--- changes/scottb/memory/dev/core/src/com/google/gwt/dev/GWTShell.java
(original)
+++ changes/scottb/memory/dev/core/src/com/google/gwt/dev/GWTShell.java Wed
Apr 1 15:01:41 2009
@@ -192,6 +192,7 @@
protected void compile(TreeLogger logger, ModuleDef moduleDef)
throws UnableToCompleteException {
LegacyCompilerOptions newOptions = new GWTCompilerOptionsImpl(options);
+ newOptions.setCompilationStateRetained(true);
if (!new GWTCompiler(newOptions).run(logger, moduleDef)) {
throw new UnableToCompleteException();
}
Modified:
changes/scottb/memory/dev/core/src/com/google/gwt/dev/HostedMode.java
==============================================================================
--- changes/scottb/memory/dev/core/src/com/google/gwt/dev/HostedMode.java
(original)
+++ changes/scottb/memory/dev/core/src/com/google/gwt/dev/HostedMode.java
Wed Apr 1 15:01:41 2009
@@ -294,6 +294,7 @@
@Override
protected void compile(TreeLogger logger) throws
UnableToCompleteException {
CompilerOptions newOptions = new CompilerOptionsImpl(options);
+ newOptions.setCompilationStateRetained(true);
new Compiler(newOptions).run(logger);
}
Modified:
changes/scottb/memory/dev/core/src/com/google/gwt/dev/Precompile.java
==============================================================================
--- changes/scottb/memory/dev/core/src/com/google/gwt/dev/Precompile.java
(original)
+++ changes/scottb/memory/dev/core/src/com/google/gwt/dev/Precompile.java
Wed Apr 1 15:01:41 2009
@@ -165,6 +165,10 @@
return jjsOptions.isClassMetadataDisabled();
}
+ public boolean isCompilationStateRetained() {
+ return jjsOptions.isCompilationStateRetained();
+ }
+
public boolean isDraftCompile() {
return jjsOptions.isDraftCompile();
}
@@ -199,6 +203,10 @@
public void setClassMetadataDisabled(boolean disabled) {
jjsOptions.setClassMetadataDisabled(disabled);
+ }
+
+ public void setCompilationStateRetained(boolean retained) {
+ jjsOptions.setCompilationStateRetained(retained);
}
public void setDisableUpdateCheck(boolean disabled) {
Modified:
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JJSOptions.java
==============================================================================
---
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JJSOptions.java
(original)
+++
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JJSOptions.java
Wed Apr 1 15:01:41 2009
@@ -20,6 +20,7 @@
import com.google.gwt.dev.util.arg.OptionDisableClassMetadata;
import com.google.gwt.dev.util.arg.OptionDraftCompile;
import com.google.gwt.dev.util.arg.OptionEnableAssertions;
+import com.google.gwt.dev.util.arg.OptionCompilationStateRetained;
import com.google.gwt.dev.util.arg.OptionRunAsyncEnabled;
import com.google.gwt.dev.util.arg.OptionScriptStyle;
import com.google.gwt.dev.util.arg.OptionSoycEnabled;
@@ -31,5 +32,5 @@
public interface JJSOptions extends OptionAggressivelyOptimize,
OptionDisableClassMetadata, OptionDisableCastChecking,
OptionDraftCompile,
OptionEnableAssertions, OptionRunAsyncEnabled, OptionScriptStyle,
- OptionSoycEnabled, OptionWorkDir {
+ OptionSoycEnabled, OptionCompilationStateRetained, OptionWorkDir {
}
Modified:
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JJSOptionsImpl.java
==============================================================================
---
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JJSOptionsImpl.java
(original)
+++
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JJSOptionsImpl.java
Wed Apr 1 15:01:41 2009
@@ -24,6 +24,7 @@
public class JJSOptionsImpl implements JJSOptions, Serializable {
private boolean aggressivelyOptimize = true;
+ private boolean compilationStateRetained = false;
private boolean disableCastChecking = false;
private boolean disableClassMetadata = false;
private boolean draftCompile = false;
@@ -42,8 +43,9 @@
public void copyFrom(JJSOptions other) {
setAggressivelyOptimize(other.isAggressivelyOptimize());
- setClassMetadataDisabled(other.isClassMetadataDisabled());
setCastCheckingDisabled(other.isCastCheckingDisabled());
+ setClassMetadataDisabled(other.isClassMetadataDisabled());
+ setCompilationStateRetained(other.isCompilationStateRetained());
setDraftCompile(other.isDraftCompile());
setEnableAssertions(other.isEnableAssertions());
setOutput(other.getOutput());
@@ -72,6 +74,10 @@
return disableClassMetadata;
}
+ public boolean isCompilationStateRetained() {
+ return compilationStateRetained;
+ }
+
public boolean isDraftCompile() {
return draftCompile;
}
@@ -98,6 +104,10 @@
public void setClassMetadataDisabled(boolean disabled) {
disableClassMetadata = disabled;
+ }
+
+ public void setCompilationStateRetained(boolean retained) {
+ compilationStateRetained = retained;
}
public void setDraftCompile(boolean draft) {
Modified:
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
==============================================================================
---
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
(original)
+++
changes/scottb/memory/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
Wed Apr 1 15:01:41 2009
@@ -370,7 +370,9 @@
module.getCompilationState(logger), rpo, fragmentLoaderCreator);
// Free up memory.
- module.clear();
+ if (!options.isCompilationStateRetained()) {
+ module.clear();
+ }
try {
Class<?> clazz =
Class.forName("com.google.gwt.i18n.rebind.StaticData",
false, Thread.currentThread().getContextClassLoader());
Added:
changes/scottb/memory/dev/core/src/com/google/gwt/dev/util/arg/OptionCompilationStateRetained.java
==============================================================================
--- (empty file)
+++
changes/scottb/memory/dev/core/src/com/google/gwt/dev/util/arg/OptionCompilationStateRetained.java
Wed Apr 1 15:01:41 2009
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2009 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
not
+ * use this file except in compliance with the License. You may obtain a
copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
under
+ * the License.
+ */
+package com.google.gwt.dev.util.arg;
+
+/**
+ * Option for retaining {...@link com.google.gwt.dev.javac.CompilationState}
during
+ * a compile. Does not correspond to any command line option. This is used
by
+ * hosted mode when doing a web mode compile to preserve the compilation
state.
+ */
+public interface OptionCompilationStateRetained {
+ boolean isCompilationStateRetained();
+
+ void setCompilationStateRetained(boolean retained);
+}
Modified:
changes/scottb/memory/dev/oophm/overlay/com/google/gwt/dev/GWTShell.java
==============================================================================
---
changes/scottb/memory/dev/oophm/overlay/com/google/gwt/dev/GWTShell.java
(original)
+++
changes/scottb/memory/dev/oophm/overlay/com/google/gwt/dev/GWTShell.java
Wed Apr 1 15:01:41 2009
@@ -229,6 +229,7 @@
protected void compile(TreeLogger logger, ModuleDef moduleDef)
throws UnableToCompleteException {
LegacyCompilerOptions newOptions = new GWTCompilerOptionsImpl(options);
+ newOptions.setCompilationStateRetained(true);
if (!new GWTCompiler(newOptions).run(logger, moduleDef)) {
// TODO(jat): error dialog?
}
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---