2
我有一個典型的C++代碼,啓動JNI:如何釋放JNI env指針?
JNIEnv* env = NULL;
...
ProcAdd = (JNI_JVMPROC) GetProcAddress(hinstLib, "JNI_CreateJavaVM");
jint createResult = (ProcAdd) (&m_jvm, (void**) & env, &vm_args);
這工作得很好。然而,我並沒有在我的代碼中的任何地方釋放env。我想知道我是否需要釋放它?如果是,如何?
我跑我的代碼PurifyPlus的,這讓我泄露在上面的代碼下面一行:
jint createResult = (ProcAdd) (&m_jvm, (void**) & env, &vm_args);
通過PurifyPlus中給出的警告是:
[W] MLK:的25941個字節的內存泄漏從120塊JVM_FindSignal分配[JVM.DLL]
我正在銷燬JVM實例。那麼可以肯定地說PurifyPlus發出虛假警告?是否有任何官方文件/頁面談論這個?我找不到一個。 – rockoder
我要去http://java.sun.com/docs/books/jni/html/invoke.html#28719中的示例。 JVM本身完全有可能存在內存泄漏。 –