From 39116672c27ef8cbfddc987cf11f21b5980e51d9 Mon Sep 17 00:00:00 2001 From: TonyJiangWJ Date: Tue, 14 Dec 2021 23:14:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stardust/autojs/core/looper/LooperHelper.java | 3 +++ .../com/stardust/autojs/rhino/TopLevelScope.java | 12 ++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/autojs/src/main/java/com/stardust/autojs/core/looper/LooperHelper.java b/autojs/src/main/java/com/stardust/autojs/core/looper/LooperHelper.java index 96b3d688..9c7e3a46 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/looper/LooperHelper.java +++ b/autojs/src/main/java/com/stardust/autojs/core/looper/LooperHelper.java @@ -26,6 +26,9 @@ public class LooperHelper { } public static void quitForThread(Thread thread) { + if (thread == null) { + return; + } Looper looper = sLoopers.remove(thread); if (looper != null && looper != Looper.getMainLooper()) looper.quit(); diff --git a/autojs/src/main/java/com/stardust/autojs/rhino/TopLevelScope.java b/autojs/src/main/java/com/stardust/autojs/rhino/TopLevelScope.java index 00974108..2a61f929 100644 --- a/autojs/src/main/java/com/stardust/autojs/rhino/TopLevelScope.java +++ b/autojs/src/main/java/com/stardust/autojs/rhino/TopLevelScope.java @@ -7,13 +7,12 @@ import org.mozilla.javascript.ImporterTopLevel; import org.mozilla.javascript.ScriptableObject; import org.mozilla.javascript.TopLevel; - import java.lang.reflect.Field; import java.util.Map; public class TopLevelScope extends ImporterTopLevel { private static final Logger logger = Logger.getLogger(TopLevelScope.class); - private long createdStamp; + private final long createdStamp; private long releasedStamp; private String engineSource; @@ -23,14 +22,19 @@ public class TopLevelScope extends ImporterTopLevel { } @Override - public void finalize() { - logger.debug("回收TopLevelScope资源, 存活总时间:" + (System.currentTimeMillis() - this.createdStamp) + "ms 释放后经过:" + (System.currentTimeMillis() - releasedStamp)); + public void finalize() throws Throwable { + logger.debug("回收TopLevelScope资源[" + engineSource + "], 存活总时间:" + + (System.currentTimeMillis() - this.createdStamp) + + "ms 释放后经过:" + (System.currentTimeMillis() - releasedStamp) + "ms"); // recycle(); + super.finalize(); } public void markReleased(String engineSource) { this.engineSource = engineSource; releasedStamp = System.currentTimeMillis(); + logger.debug("标记TopLevelScope资源已不再使用[" + engineSource + "], 存活总时间:" + + (releasedStamp - this.createdStamp) + "ms"); } /**