in src/main/c/Windows/SerialPort_Windows.c [711:738]
JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *jvm, void *reserved)
{
// Ensure that the class has not already been uninitialized
if (!classInitialized)
return;
classInitialized = 0;
// Retrieve the JNI environment
JNIEnv *env;
jint jniVersion = JNI_VERSION_1_2;
(*jvm)->GetEnv(jvm, (void**)&env, jniVersion);
// Close all open ports
for (int i = 0; i < serialPorts.length; ++i)
if (serialPorts.ports[i]->handle != INVALID_HANDLE_VALUE)
Java_com_fazecast_jSerialComm_SerialPort_closePortNative(env, jniErrorClass, (jlong)(intptr_t)serialPorts.ports[i]);
if (serialCommClass)
{
(*env)->DeleteGlobalRef(env, serialCommClass);
serialCommClass = NULL;
}
if (jniErrorClass)
{
(*env)->DeleteGlobalRef(env, jniErrorClass);
jniErrorClass = NULL;
}
}