Jit: Fix deadlock in method tracing.
diff --git a/vm/compiler/Compiler.c b/vm/compiler/Compiler.c
index adcc16e..c16e78c 100644
--- a/vm/compiler/Compiler.c
+++ b/vm/compiler/Compiler.c
@@ -520,6 +520,7 @@
 {
     bool jitActive;
     bool jitActivate;
+    bool needUnchain = false;
 
     dvmLockMutex(&gDvmJit.tableLock);
     jitActive = gDvmJit.pProfTable != NULL;
@@ -527,10 +528,11 @@
 
     if (jitActivate && !jitActive) {
         gDvmJit.pProfTable = gDvmJit.pProfTableCopy;
-        dvmUnlockMutex(&gDvmJit.tableLock);
     } else if (!jitActivate && jitActive) {
         gDvmJit.pProfTable = NULL;
-        dvmUnlockMutex(&gDvmJit.tableLock);
-        dvmJitUnchainAll();
+        needUnchain = true;
     }
+    dvmUnlockMutex(&gDvmJit.tableLock);
+    if (needUnchain)
+        dvmJitUnchainAll();
 }