mirror of
https://github.com/rhunk/SnapEnhance.git
synced 2025-06-12 05:07:46 +02:00
fix(scripting): dead objects
- add no args emit
This commit is contained in:
@ -125,7 +125,7 @@ class SnapEnhance {
|
||||
}
|
||||
})
|
||||
|
||||
scriptRuntime.ipcManager = object: IPCInterface {
|
||||
scriptRuntime.ipcManager = object: IPCInterface() {
|
||||
override fun on(eventName: String, listener: Listener) {
|
||||
registerIPCListener(eventName, object: IPCListener.Stub() {
|
||||
override fun onMessage(args: Array<out String?>) {
|
||||
|
@ -2,7 +2,10 @@ package me.rhunk.snapenhance.scripting
|
||||
|
||||
typealias Listener = (Array<out String?>) -> Unit
|
||||
|
||||
interface IPCInterface {
|
||||
fun on(eventName: String, listener: Listener)
|
||||
fun emit(eventName: String, args: Array<out String?>)
|
||||
abstract class IPCInterface {
|
||||
abstract fun on(eventName: String, listener: Listener)
|
||||
|
||||
abstract fun emit(eventName: String, vararg args: String?)
|
||||
|
||||
fun emit(eventName: String) = emit(eventName, *emptyArray())
|
||||
}
|
@ -13,7 +13,13 @@ class ScriptRuntime(
|
||||
private val modules = mutableMapOf<String, JSModule>()
|
||||
|
||||
fun eachModule(f: JSModule.() -> Unit) {
|
||||
modules.values.forEach(f)
|
||||
modules.values.forEach { module ->
|
||||
runCatching {
|
||||
module.f()
|
||||
}.onFailure {
|
||||
logger.error("Failed to run module function in ${module.moduleInfo.name}", it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun readModuleInfo(reader: BufferedReader): ModuleInfo {
|
||||
|
Reference in New Issue
Block a user