Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions test-app/runtime/src/main/cpp/com_tns_Runtime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) {
return JNI_VERSION_1_6;
}

// @FastNative signature - optimized JNI, keeps JNIEnv* for jstring handling
extern "C" JNIEXPORT void Java_com_tns_Runtime_SetManualInstrumentationMode(JNIEnv* _env, jobject obj, jstring mode) {
try {
Runtime::SetManualInstrumentationMode(mode);
Expand Down Expand Up @@ -214,13 +215,14 @@ extern "C" JNIEXPORT void Java_com_tns_Runtime_createJSInstanceNative(JNIEnv* _e
}
}

extern "C" JNIEXPORT jint Java_com_tns_Runtime_generateNewObjectId(JNIEnv* env, jobject obj, jint runtimeId) {
// @CriticalNative signature - no JNIEnv* or jobject parameters
extern "C" JNIEXPORT jint Java_com_tns_Runtime_generateNewObjectId(jint runtimeId) {
try {
auto runtime = TryGetRuntime(runtimeId);
if (runtime == nullptr) {
return 0;
}
return runtime->GenerateNewObjectId(env, obj);
return runtime->GenerateNewObjectId(nullptr, nullptr);
} catch (NativeScriptException& e) {
e.ReThrowToJava();
} catch (std::exception e) {
Expand All @@ -236,6 +238,7 @@ extern "C" JNIEXPORT jint Java_com_tns_Runtime_generateNewObjectId(JNIEnv* env,
return 0;
}

// @FastNative signature - optimized JNI, keeps JNIEnv* for NotifyGC
extern "C" JNIEXPORT jboolean Java_com_tns_Runtime_notifyGc(JNIEnv* env, jobject obj, jint runtimeId) {
auto runtime = TryGetRuntime(runtimeId);
if (runtime == nullptr) {
Expand Down Expand Up @@ -288,11 +291,13 @@ extern "C" JNIEXPORT void Java_com_tns_Runtime_passExceptionToJsNative(JNIEnv* e
}
}

extern "C" JNIEXPORT jint Java_com_tns_Runtime_getPointerSize(JNIEnv* env, jobject obj) {
// @CriticalNative signature - no JNIEnv* or jobject parameters
extern "C" JNIEXPORT jint Java_com_tns_Runtime_getPointerSize() {
return sizeof(void*);
}

extern "C" JNIEXPORT jint Java_com_tns_Runtime_getCurrentRuntimeId(JNIEnv* _env, jobject obj) {
// @CriticalNative signature - no JNIEnv* or jobject parameters
extern "C" JNIEXPORT jint Java_com_tns_Runtime_getCurrentRuntimeId() {
Isolate* isolate = Isolate::TryGetCurrent();
if (isolate == nullptr) {
return -1;
Expand Down
9 changes: 8 additions & 1 deletion test-app/runtime/src/main/java/com/tns/Runtime.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
import java.util.concurrent.RunnableFuture;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.Collections;
import dalvik.annotation.optimization.CriticalNative;
import dalvik.annotation.optimization.FastNative;

public class Runtime {
private native void initNativeScript(int runtimeId, String filesPath, String nativeLibDir, boolean verboseLoggingEnabled, boolean isDebuggable, String packageName,
Expand All @@ -51,8 +53,10 @@ private native void initNativeScript(int runtimeId, String filesPath, String nat

private native void createJSInstanceNative(int runtimeId, Object javaObject, int javaObjectID, String canonicalName);

private native int generateNewObjectId(int runtimeId);
@CriticalNative
private static native int generateNewObjectId(int runtimeId);

@FastNative
private native boolean notifyGc(int runtimeId);

private native void lock(int runtimeId);
Expand All @@ -61,10 +65,13 @@ private native void initNativeScript(int runtimeId, String filesPath, String nat

private native void passExceptionToJsNative(int runtimeId, Throwable ex, String message, String fullStackTrace, String jsStackTrace, boolean isDiscarded);

@CriticalNative
private static native int getCurrentRuntimeId();

@CriticalNative
public static native int getPointerSize();

@FastNative
public static native void SetManualInstrumentationMode(String mode);

private static native void WorkerGlobalOnMessageCallback(int runtimeId, String message);
Expand Down
Loading