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
-~----------~----~----~----~------~----~------~--~---

Reply via email to