VirtualMachine::~VirtualMachine()
{ if (m_bDestroy)
{ // Do not destroy the VM. Under Java 1.3, the AWT event loop thread is // not a daemon thread and is never terminated, so that calling // DestroyJavaVM (waiting for all non-daemon threads to terminate) hangs // forever. /* jintn=m_pVm->DestroyJavaVM(); SAL_WARN_IF(n!=JNI_OK,"jvmaccess","JNI:DestroyJavaVMfailed");
*/
}
}
JNIEnv * VirtualMachine::attachThread(bool * pAttached) const
{
assert(pAttached != nullptr && "bad parameter");
JNIEnv * pEnv;
jint n = m_pVm->GetEnv(reinterpret_cast< void ** >(&pEnv), m_nVersion);
SAL_WARN_IF(
n != JNI_OK && n != JNI_EDETACHED, "jvmaccess", "JNI: GetEnv failed"); if (pEnv == nullptr)
{ if (m_pVm->AttachCurrentThread
( #ifndef ANDROID reinterpret_cast< void ** >(&pEnv), #else // The Android <jni.h> has AttachCurrentThread() taking a // JNIEnv** and not void **
&pEnv, #endif
nullptr)
!= JNI_OK) return nullptr;
*pAttached = true;
} else
*pAttached = false; return pEnv;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.