============================================================================= Java.use() =============================================================================
| 218 | // Java.use() |
| 219 | //============================================================================= |
| 220 | static JavaClassWrapper* java_use(JNIEnv* env, const char* class_name) { |
| 221 | jclass clazz = find_class(env, class_name); |
| 222 | if (!clazz) { |
| 223 | return NULL; |
| 224 | } |
| 225 | |
| 226 | // Global reference al (wrapper'ın ömrü boyunca yaşasın) |
| 227 | jclass global_clazz = (jclass)(*env)->NewGlobalRef(env, clazz); |
| 228 | (*env)->DeleteLocalRef(env, clazz); |
| 229 | |
| 230 | // Wrapper oluştur |
| 231 | JavaClassWrapper* wrapper = (JavaClassWrapper*)malloc(sizeof(JavaClassWrapper)); |
| 232 | if (!wrapper) { |
| 233 | (*env)->DeleteGlobalRef(env, global_clazz); |
| 234 | return NULL; |
| 235 | } |
| 236 | |
| 237 | wrapper->clazz = global_clazz; |
| 238 | strncpy(wrapper->class_name, class_name, MAX_CLASS_NAME - 1); |
| 239 | wrapper->class_name[MAX_CLASS_NAME - 1] = '\0'; |
| 240 | |
| 241 | return wrapper; |
| 242 | } |
| 243 | |
| 244 | |
| 245 | static jobject JNICALL native_invoke_callback(JNIEnv* env, jclass clazz, |
no test coverage detected