package com.he; import android.os.Handler; import android.os.Looper; import android.os.Message; import com.he.jsbinding.JsContext; import com.he.jsbinding.JsScopedContext; import java.util.concurrent.atomic.AtomicInteger; public final class JsRunLoop extends Thread { private static final Delegate delegate = new Delegate(); private static final AtomicInteger thread_id = new AtomicInteger(0); private Handler handler; private JsContext mJsContext; private Runnable posted_task; private SetupCallback setupCallback; private RuntimeException thrown; public JsRunLoop() { super(stringBuilder.toString()); } public final Handler getHandler() { // Byte code: // 0: aload_0 // 1: getfield handler : Landroid/os/Handler; // 4: astore_1 // 5: aload_1 // 6: ifnull -> 11 // 9: aload_1 // 10: areturn // 11: aload_0 // 12: monitorenter // 13: aload_0 // 14: getfield handler : Landroid/os/Handler; // 17: ifnonnull -> 41 // 20: aload_0 // 21: getfield thrown : Ljava/lang/RuntimeException; // 24: astore_1 // 25: aload_1 // 26: ifnonnull -> 36 // 29: aload_0 // 30: invokevirtual wait : ()V // 33: goto -> 13 // 36: aload_0 // 37: getfield thrown : Ljava/lang/RuntimeException; // 40: athrow // 41: aload_0 // 42: monitorexit // 43: aload_0 // 44: getfield handler : Landroid/os/Handler; // 47: areturn // 48: astore_1 // 49: aload_0 // 50: monitorexit // 51: goto -> 56 // 54: aload_1 // 55: athrow // 56: goto -> 54 // 59: astore_1 // 60: goto -> 13 // Exception table: // from to target type // 13 25 48 finally // 29 33 59 java/lang/InterruptedException // 29 33 48 finally // 36 41 48 finally // 41 43 48 finally // 49 51 48 finally } public final JsContext getJsContext() { return this.mJsContext; } public final void post(Runnable paramRunnable) { synchronized (delegate) { if (this.setupCallback == null) { this.posted_task = paramRunnable; delegate.notify(); return; } getHandler().post(paramRunnable); return; } } public final void quit() { this.handler.getLooper().quitSafely(); } public final void run() { // Byte code: // 0: new com/he/jsbinding/JsContext // 3: dup // 4: new com/he/jsbinding/JsEngine // 7: dup // 8: invokespecial : ()V // 11: invokespecial : (Lcom/he/jsbinding/JsEngine;)V // 14: astore_2 // 15: aload_0 // 16: aload_2 // 17: putfield mJsContext : Lcom/he/jsbinding/JsContext; // 20: invokestatic prepare : ()V // 23: aload_0 // 24: new android/os/Handler // 27: dup // 28: getstatic com/he/JsRunLoop.delegate : Lcom/he/JsRunLoop$Delegate; // 31: invokespecial : (Landroid/os/Handler$Callback;)V // 34: putfield handler : Landroid/os/Handler; // 37: aload_0 // 38: monitorenter // 39: aload_0 // 40: invokevirtual notifyAll : ()V // 43: aload_0 // 44: monitorexit // 45: getstatic com/he/JsRunLoop.delegate : Lcom/he/JsRunLoop$Delegate; // 48: astore_1 // 49: aload_1 // 50: monitorenter // 51: aload_0 // 52: getfield setupCallback : Lcom/he/JsRunLoop$SetupCallback; // 55: ifnonnull -> 88 // 58: aload_0 // 59: getfield posted_task : Ljava/lang/Runnable; // 62: ifnull -> 79 // 65: aload_0 // 66: getfield posted_task : Ljava/lang/Runnable; // 69: invokeinterface run : ()V // 74: aload_0 // 75: aconst_null // 76: putfield posted_task : Ljava/lang/Runnable; // 79: getstatic com/he/JsRunLoop.delegate : Lcom/he/JsRunLoop$Delegate; // 82: invokevirtual wait : ()V // 85: goto -> 51 // 88: aload_1 // 89: monitorexit // 90: aload_2 // 91: aload_0 // 92: getfield setupCallback : Lcom/he/JsRunLoop$SetupCallback; // 95: invokevirtual run : (Lcom/he/jsbinding/JsContext$ScopeCallback;)V // 98: aload_2 // 99: getstatic com/he/JsRunLoop.delegate : Lcom/he/JsRunLoop$Delegate; // 102: invokevirtual run : (Lcom/he/jsbinding/JsContext$ScopeCallback;)V // 105: aload_0 // 106: getfield setupCallback : Lcom/he/JsRunLoop$SetupCallback; // 109: invokeinterface cleanup : ()V // 114: aload_2 // 115: invokevirtual getEngine : ()Lcom/he/jsbinding/JsEngine; // 118: invokevirtual dispose : ()V // 121: return // 122: astore_2 // 123: aload_1 // 124: monitorexit // 125: aload_2 // 126: athrow // 127: astore_1 // 128: aload_0 // 129: monitorexit // 130: aload_1 // 131: athrow // 132: astore_1 // 133: aload_0 // 134: aload_1 // 135: putfield thrown : Ljava/lang/RuntimeException; // 138: aload_0 // 139: monitorenter // 140: aload_0 // 141: invokevirtual notifyAll : ()V // 144: aload_0 // 145: monitorexit // 146: return // 147: astore_1 // 148: aload_0 // 149: monitorexit // 150: goto -> 155 // 153: aload_1 // 154: athrow // 155: goto -> 153 // 158: astore_3 // 159: goto -> 51 // Exception table: // from to target type // 0 20 132 java/lang/RuntimeException // 39 45 127 finally // 51 79 122 finally // 79 85 158 java/lang/InterruptedException // 79 85 122 finally // 88 90 122 finally // 123 125 122 finally // 128 130 127 finally // 140 146 147 finally // 148 150 147 finally } public final void setup(SetupCallback paramSetupCallback) { this.setupCallback = paramSetupCallback; synchronized (delegate) { delegate.notify(); return; } } static class Delegate implements Handler.Callback, JsContext.ScopeCallback { private Delegate() {} public boolean handleMessage(Message param1Message) { return false; } public void run(JsScopedContext param1JsScopedContext) { Looper.loop(); } } public static interface SetupCallback extends JsContext.ScopeCallback { void cleanup(); } } /* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\JsRunLoop.class * Java compiler version: 6 (50.0) * JD-Core Version: 1.1.3 */