aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.ajdt.core/src
diff options
context:
space:
mode:
authoracolyer <acolyer>2006-02-10 17:55:33 +0000
committeracolyer <acolyer>2006-02-10 17:55:33 +0000
commit1c26c6cc4885648ccb398b16daf3c387740f8952 (patch)
tree141e82ea9b005d443328760c248678d58c400fe6 /org.aspectj.ajdt.core/src
parentfd7f8075c8046aa5a2fb059e5b27aa869fc6658c (diff)
downloadaspectj-1c26c6cc4885648ccb398b16daf3c387740f8952.tar.gz
aspectj-1c26c6cc4885648ccb398b16daf3c387740f8952.zip
free up memory anchored in static at the end of a run
Diffstat (limited to 'org.aspectj.ajdt.core/src')
-rw-r--r--org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java b/org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java
index 99843a3b9..2f5c98053 100644
--- a/org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java
+++ b/org.aspectj.ajdt.core/src/org/aspectj/tools/ajc/Main.java
@@ -36,6 +36,7 @@ import org.aspectj.bridge.Version;
import org.aspectj.bridge.context.CompilationAndWeavingContext;
import org.aspectj.util.FileUtil;
import org.aspectj.util.LangUtil;
+import org.aspectj.weaver.Dump;
/**
* Programmatic and command-line interface to AspectJ compiler.
@@ -243,10 +244,15 @@ public class Main {
try {
// byte[] b = new byte[100000000]; for testing OoME only!
run(args, holder);
- } catch (OutOfMemoryError outOfMemory) {
+ }
+ catch (OutOfMemoryError outOfMemory) {
IMessage outOfMemoryMessage = new Message(OUT_OF_MEMORY_MSG,null,true);
holder.handleMessage(outOfMemoryMessage);
systemExit(holder); // we can't reasonably continue from this point.
+ }
+ finally {
+ CompilationAndWeavingContext.reset();
+ Dump.reset();
}
boolean skipExit = false;