IDEA-132625 (decompiler time limit)

This commit is contained in:
Roman Shevchenko 2014-11-10 16:05:22 +01:00
parent 52a7e1c7e9
commit 3940565598
2 changed files with 12 additions and 7 deletions

View File

@ -94,7 +94,7 @@ public class ClassWrapper {
mtThread.start();
while (mtThread.isAlive()) {
while (!mtProc.isFinished()) {
synchronized (mtProc.lock) {
mtProc.lock.wait(100);
}

View File

@ -41,6 +41,7 @@ public class MethodProcessorRunnable implements Runnable {
private volatile RootStatement root;
private volatile Throwable error;
private volatile boolean finished = false;
public MethodProcessorRunnable(StructMethod method, VarProcessor varProc, DecompilerContext parentContext) {
this.method = method;
@ -57,10 +58,6 @@ public class MethodProcessorRunnable implements Runnable {
try {
root = codeToJava(method, varProc);
synchronized (lock) {
lock.notifyAll();
}
}
catch (ThreadDeath ex) {
throw ex;
@ -68,6 +65,14 @@ public class MethodProcessorRunnable implements Runnable {
catch (Throwable ex) {
error = ex;
}
finally {
DecompilerContext.setCurrentContext(null);
}
finished = true;
synchronized (lock) {
lock.notifyAll();
}
}
public static RootStatement codeToJava(StructMethod mt, VarProcessor varProc) throws IOException {
@ -206,7 +211,7 @@ public class MethodProcessorRunnable implements Runnable {
return root;
}
public Throwable getError() {
return error;
public boolean isFinished() {
return finished;
}
}