Compare commits

...

1 commit

Author SHA1 Message Date
942e0dde5b
refactor: new array list 2025-03-10 16:24:19 +08:00

View file

@ -70,9 +70,6 @@ Java_net_typeblog_lpac_1jni_LpacJni_discoveryProfile(
char **smdp_list = NULL; char **smdp_list = NULL;
jobjectArray addresses = NULL; jobjectArray addresses = NULL;
jclass array_list_class = NULL;
jmethodID array_list_constructor = NULL;
jmethodID add_element = NULL;
int ret; int ret;
@ -104,23 +101,27 @@ Java_net_typeblog_lpac_1jni_LpacJni_discoveryProfile(
goto out; goto out;
} }
array_list_class = (*env)->FindClass(env, "java/util/ArrayList"); jclass array_list_class = (*env)->FindClass(env, "java/util/ArrayList");
array_list_constructor = (*env)->GetMethodID(env, array_list_class, "<init>", "()V"); jmethodID array_list_constructor = (*env)->GetMethodID(env, array_list_class, "<init>", "()V");
add_element = (*env)->GetMethodID(env, array_list_class, "add", "(Ljava/lang/Object;)Z"); jmethodID add_element = (*env)->GetMethodID(env, array_list_class, "add", "(Ljava/lang/Object;)Z");
// val addresses = new ArrayList<String>();
addresses = (*env)->NewObject(env, array_list_class, array_list_constructor); addresses = (*env)->NewObject(env, array_list_class, array_list_constructor);
for (jsize index = 0; smdp_list[index] != NULL; index++) { for (jsize index = 0; smdp_list[index] != NULL; index++) {
jstring element = toJString(env, smdp_list[index]); jstring element = toJString(env, smdp_list[index]);
// addresses.add(smdp_list[index]);
(*env)->CallBooleanMethod(env, addresses, add_element, element); (*env)->CallBooleanMethod(env, addresses, add_element, element);
} }
// callback.onDiscovered(addresses);
(*env)->CallVoidMethod(env, callback, on_discovered, addresses); (*env)->CallVoidMethod(env, callback, on_discovered, addresses);
(*env)->DeleteLocalRef(env, array_list_class);
(*env)->DeleteLocalRef(env, array_list_constructor);
(*env)->DeleteLocalRef(env, add_element);
out: out:
if (array_list_class != NULL) (*env)->DeleteLocalRef(env, array_list_class);
if (array_list_constructor != NULL) (*env)->DeleteLocalRef(env, array_list_constructor);
if (add_element != NULL) (*env)->DeleteLocalRef(env, add_element);
if (_imei != NULL) (*env)->ReleaseStringUTFChars(env, imei, _imei); if (_imei != NULL) (*env)->ReleaseStringUTFChars(env, imei, _imei);
(*env)->ReleaseStringUTFChars(env, address, _address); (*env)->ReleaseStringUTFChars(env, address, _address);