IDEA-132625 (decompiler time limit)
This commit is contained in:
@@ -94,7 +94,7 @@ public class ClassWrapper {
|
||||
|
||||
mtThread.start();
|
||||
|
||||
while (mtThread.isAlive()) {
|
||||
while (!mtProc.isFinished()) {
|
||||
synchronized (mtProc.lock) {
|
||||
mtProc.lock.wait(100);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user