6.6.3 - Alpha5 - 修复 engines.all 方法可能触发 ConcurrentModificationException 的问题 (issue #394)

This commit is contained in:
SuperMonster003
2025-05-23 21:23:03 +08:00
parent 818e9d7e40
commit 2f0d3a7409
5 changed files with 11 additions and 8 deletions

View File

@@ -9,8 +9,10 @@ import org.autojs.autojs.execution.ScriptExecution;
import org.autojs.autojs.script.ScriptSource;
import org.autojs.autojs.tool.Supplier;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
@@ -52,7 +54,9 @@ public class ScriptEngineManager {
}
public Set<ScriptEngine<? extends ScriptSource>> getEngines() {
return mEngines;
synchronized (mEngines) {
return Collections.unmodifiableSet(new LinkedHashSet<>(mEngines));
}
}
public android.content.Context getAndroidContext() {

View File

@@ -217,9 +217,7 @@ public class ScriptEngineService {
}
public Set<ScriptEngine<? extends ScriptSource>> getEngines() {
synchronized (mScriptEngineManager) {
return new LinkedHashSet<>(mScriptEngineManager.getEngines());
}
return mScriptEngineManager.getEngines();
}
public Collection<ScriptExecution> getScriptExecutions() {

View File

@@ -61,7 +61,7 @@ open class TaskManagerFragment : ViewPagerFragment(45), ViewStatesManageable {
}
override fun onFabClick(fab: FloatingActionButton) {
AutoJs.instance.scriptEngineService.stopAll()
AutoJs.instance.scriptEngineService.stopAllAndToast()
}
override fun onBackPressed(activity: Activity) = false