|
@ -66,13 +66,13 @@ namespace pEp { |
|
|
void startup_sync() |
|
|
void startup_sync() |
|
|
{ |
|
|
{ |
|
|
needsFastPollMethodID = env()->GetMethodID( |
|
|
needsFastPollMethodID = env()->GetMethodID( |
|
|
_clazz, |
|
|
engineClass, |
|
|
"needsFastPollCallFromC", |
|
|
"needsFastPollCallFromC", |
|
|
"(Z)I"); |
|
|
"(Z)I"); |
|
|
assert(needsFastPollMethodID); |
|
|
assert(needsFastPollMethodID); |
|
|
|
|
|
|
|
|
notifyHandShakeMethodID = env()->GetMethodID( |
|
|
notifyHandShakeMethodID = env()->GetMethodID( |
|
|
_clazz, |
|
|
engineClass, |
|
|
"notifyHandshakeCallFromC", |
|
|
"notifyHandshakeCallFromC", |
|
|
"(Lorg/pEp/jniadapter/_Identity;Lorg/pEp/jniadapter/_Identity;Lorg/pEp/jniadapter/SyncHandshakeSignal;)I"); |
|
|
"(Lorg/pEp/jniadapter/_Identity;Lorg/pEp/jniadapter/_Identity;Lorg/pEp/jniadapter/SyncHandshakeSignal;)I"); |
|
|
assert(notifyHandShakeMethodID); |
|
|
assert(notifyHandShakeMethodID); |
|
@ -80,7 +80,7 @@ namespace pEp { |
|
|
|
|
|
|
|
|
void shutdown_sync() |
|
|
void shutdown_sync() |
|
|
{ |
|
|
{ |
|
|
env()->DeleteLocalRef(messageClass); |
|
|
env()->DeleteGlobalRef(messageClass); |
|
|
jvm->DetachCurrentThread(); |
|
|
jvm->DetachCurrentThread(); |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
@ -92,6 +92,9 @@ namespace pEp { |
|
|
jobject msg_ = nullptr; |
|
|
jobject msg_ = nullptr; |
|
|
jint result = 0; |
|
|
jint result = 0; |
|
|
|
|
|
|
|
|
|
|
|
if (!o) |
|
|
|
|
|
o = new JNISync(); |
|
|
|
|
|
|
|
|
msg_ = o->env()->NewObject(messageClass, messageConstructorMethodID, (jlong) msg); |
|
|
msg_ = o->env()->NewObject(messageClass, messageConstructorMethodID, (jlong) msg); |
|
|
result = o->env()->CallIntMethod(obj, messageToSendMethodID, msg_); |
|
|
result = o->env()->CallIntMethod(obj, messageToSendMethodID, msg_); |
|
|
|
|
|
|
|
@ -150,7 +153,7 @@ extern "C" { |
|
|
|
|
|
|
|
|
env->GetJavaVM(&jvm); |
|
|
env->GetJavaVM(&jvm); |
|
|
thread_env = env; |
|
|
thread_env = env; |
|
|
obj = me; |
|
|
obj = env->NewGlobalRef(me); |
|
|
_clazz = env->GetObjectClass(obj); |
|
|
_clazz = env->GetObjectClass(obj); |
|
|
|
|
|
|
|
|
if (!o) |
|
|
if (!o) |
|
@ -188,7 +191,12 @@ extern "C" { |
|
|
) |
|
|
) |
|
|
{ |
|
|
{ |
|
|
shutdown(); |
|
|
shutdown(); |
|
|
env->DeleteLocalRef(_clazz); |
|
|
|
|
|
|
|
|
env->DeleteGlobalRef(identityClass); |
|
|
|
|
|
env->DeleteGlobalRef(signalClass); |
|
|
|
|
|
env->DeleteGlobalRef(engineClass); |
|
|
|
|
|
env->DeleteGlobalRef(obj); |
|
|
|
|
|
|
|
|
session(pEp::Adapter::release); |
|
|
session(pEp::Adapter::release); |
|
|
delete o; |
|
|
delete o; |
|
|
} |
|
|
} |
|
|