Skip to content

Commit 5479d22

Browse files
committed
refactor: callback rename arguments
1 parent fee4fe5 commit 5479d22

File tree

2 files changed

+29
-24
lines changed

2 files changed

+29
-24
lines changed

dart_native/android/src/main/jni/dart_native.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ extern "C"
8888
return JNI_VERSION_1_6;
8989
}
9090

91+
JNIEXPORT void JNI_OnUnload(JavaVM* vm, void* reserved)
92+
{
93+
DNDebug("JNI_OnUnload");
94+
}
95+
9196
jclass _findClass(JNIEnv *env, const char *name)
9297
{
9398
jclass nativeClass = nullptr;

dart_native/android/src/main/jni/dn_callback.cpp

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -102,28 +102,27 @@ bool NotifyDart(Dart_Port send_port, const Work *work)
102102

103103
extern "C" JNIEXPORT jobject JNICALL Java_com_dartnative_dart_1native_CallbackInvocationHandler_hookCallback(JNIEnv *env,
104104
jclass clazz,
105-
jlong dartObject,
106-
jstring fun_name,
107-
jint arg_count,
108-
jobjectArray arg_types,
109-
jobjectArray args,
110-
jstring return_type)
105+
jlong dartObjectAddress,
106+
jstring functionName,
107+
jint argumentCount,
108+
jobjectArray argumentTypes,
109+
jobjectArray argumentsArray,
110+
jstring returnTypeStr)
111111
{
112-
Dart_Port port = getCallbackDartPort(dartObject);
112+
Dart_Port port = getCallbackDartPort(dartObjectAddress);
113113
if (port == 0)
114114
{
115115
DNDebug("not register dart port!");
116-
return NULL;
116+
return nullptr;
117117
}
118118

119-
char *funName = (char *)env->GetStringUTFChars(fun_name, 0);
120-
jsize argTypeLength = env->GetArrayLength(arg_types);
121-
char **argTypes = new char *[argTypeLength + 1];
122-
void **arguments = new void *[argTypeLength];
123-
for (int i = 0; i < argTypeLength; ++i)
119+
char *funName = (char *)env->GetStringUTFChars(functionName, 0);
120+
char **argTypes = new char *[argumentCount + 1];
121+
void **arguments = new void *[argumentCount];
122+
for (int i = 0; i < argumentCount; ++i)
124123
{
125-
jstring argTypeString = (jstring)env->GetObjectArrayElement(arg_types, i);
126-
jobject argument = env->GetObjectArrayElement(args, i);
124+
jstring argTypeString = (jstring)env->GetObjectArrayElement(argumentTypes, i);
125+
jobject argument = env->GetObjectArrayElement(argumentsArray, i);
127126

128127
argTypes[i] = (char *)env->GetStringUTFChars(argTypeString, 0);
129128
env->DeleteLocalRef(argTypeString);
@@ -173,20 +172,20 @@ extern "C" JNIEXPORT jobject JNICALL Java_com_dartnative_dart_1native_CallbackIn
173172
}
174173

175174
/// when return void, jstring which from native is null.
176-
char *returnType = return_type == nullptr ? nullptr
177-
: (char *)env->GetStringUTFChars(return_type, 0);
175+
char *returnType = returnTypeStr == nullptr ? nullptr
176+
: (char *)env->GetStringUTFChars(returnTypeStr, 0);
178177

179-
argTypes[argTypeLength] = returnType;
178+
argTypes[argumentCount] = returnType;
180179

181180
sem_t sem;
182181
bool isSemInitSuccess = sem_init(&sem, 0, 0) == 0;
183182

184-
const Work work = [dartObject, argTypes, arguments, arg_count, funName, &sem, isSemInitSuccess]() {
185-
NativeMethodCallback methodCallback = getCallbackMethod(dartObject, funName);
186-
void *target = getDartObject(dartObject);
187-
if (methodCallback != NULL && target != nullptr)
183+
const Work work = [dartObjectAddress, argTypes, arguments, argumentCount, funName, &sem, isSemInitSuccess]() {
184+
NativeMethodCallback methodCallback = getCallbackMethod(dartObjectAddress, funName);
185+
void *target = getDartObject(dartObjectAddress);
186+
if (methodCallback != nullptr && target != nullptr)
188187
{
189-
methodCallback(target, funName, arguments, argTypes, arg_count);
188+
methodCallback(target, funName, arguments, argTypes, argumentCount);
190189
}
191190
if (isSemInitSuccess)
192191
{
@@ -195,9 +194,10 @@ extern "C" JNIEXPORT jobject JNICALL Java_com_dartnative_dart_1native_CallbackIn
195194
};
196195

197196
const Work *work_ptr = new Work(work);
197+
/// error
198198
bool notifyResult = NotifyDart(port, work_ptr);
199199

200-
jobject callbackResult = NULL;
200+
jobject callbackResult = nullptr;
201201
if (isSemInitSuccess)
202202
{
203203
DNDebug("wait work execute");

0 commit comments

Comments
 (0)