diff --git a/jnitrace/src/main.ts b/jnitrace/src/main.ts index daac360..d052fd1 100644 --- a/jnitrace/src/main.ts +++ b/jnitrace/src/main.ts @@ -9,10 +9,10 @@ import { DataTransport } from "./transport/data_transport"; const IS_IN_REPL = true; const transport = new DataTransport(); -let config : Config | null = null; +let config: Config | null = null; JNILibraryWatcher.setCallback({ - onLoaded(path : string) { + onLoaded(path: string): void { if (!IS_IN_REPL && !Config.initialised()) { const op = recv("config", (message): void => { const builder = new ConfigBuilder(); @@ -35,7 +35,7 @@ JNILibraryWatcher.setCallback({ return; } - config.libraries.forEach((element : string) => { + config.libraries.forEach((element: string): void => { if (path.includes(element)) { send({ type: "tracked_library", @@ -46,17 +46,19 @@ JNILibraryWatcher.setCallback({ } }); -const callback : JNIInvocationCallback = { - onEnter(args : NativeArgumentValue[]) { +const callback: JNIInvocationCallback = { + onEnter(args: NativeArgumentValue[]): void { this.args = args; }, - onLeave(retval : JNINativeReturnValue) { - const data = new MethodData(this.methodDef, this.args, retval.get(), this.javaMethod); + onLeave(retval: JNINativeReturnValue): void { + const data = new MethodData( + this.methodDef, this.args, retval.get(), this.javaMethod + ); transport.reportJNIEnvCall( data, this.backtrace ); } -} +}; JNIInterceptor.attach("DestroyJavaVM", callback); JNIInterceptor.attach("AttachCurrentThread", callback); diff --git a/jnitrace/src/transport/data_transport.ts b/jnitrace/src/transport/data_transport.ts index 337f19c..a6f5de9 100644 --- a/jnitrace/src/transport/data_transport.ts +++ b/jnitrace/src/transport/data_transport.ts @@ -7,6 +7,8 @@ const TYPE_NAME_START = 0; const TYPE_NAME_END = -1; const SKIP_ENV_INDEX = 1; const EMPTY_ARRAY_LEN = 0; +const JAVA_VM_INDEX = 0; +const JNI_ENV_INDEX = 0; class NativeMethodJSONContainer { @@ -137,11 +139,11 @@ class DataTransport { this.exclude = []; } - public setIncludeFilter(include: string[]) { + public setIncludeFilter(include: string[]): void { this.include = include; } - public setExcludeFilter(exclude: string[]) { + public setExcludeFilter(exclude: string[]): void { this.exclude = exclude; } @@ -154,7 +156,7 @@ class DataTransport { const outputRet: DataJSONContainer = new DataJSONContainer( data.ret, null ); - const javaVM = data.getArgAsPtr(0); + const javaVM = data.getArgAsPtr(JAVA_VM_INDEX); if (!config.vm || this.shouldIgnoreMethod(data)) { return; @@ -180,10 +182,9 @@ class DataTransport { ): void { const RET_INDEX = 0; const config = Config.getInstance(); - const threadId = Process.getCurrentThreadId(); const outputArgs: DataJSONContainer[] = []; const outputRet: DataJSONContainer[] = []; - const jniEnv = data.getArgAsPtr(0); + const jniEnv = data.getArgAsPtr(JNI_ENV_INDEX); this.updateState(data); @@ -338,7 +339,6 @@ class DataTransport { } private shouldIgnoreMethod(data: MethodData): boolean { - const config = Config.getInstance(); const name = data.method.name; if (this.include.length > EMPTY_ARRAY_LEN) { @@ -870,7 +870,6 @@ class DataTransport { const ENV_ARG_INDEX = 1; const VERSION_ARG_INDEX = 2; - const threadId = Process.getCurrentThreadId(); const env: NativeArgumentValue = data.args[ENV_ARG_INDEX]; let binData = null;