如何从jobjectArray中释放对象?

时间:2013-03-01 17:14:49

标签: c++ c java-native-interface

我有以下代码:

jobjectArray objects; //function argument, actually a byte[][]
jbyteArray* arrays = malloc(sizeof(jbyteArray), 2); // Assume 2
for(int i = 0; i < 2; ++i) {
    arrays[i] = (jbyteArray)env->GetObjectArrayElement(objects, i);
}

// Do stuff with arrays.

// Do I have to do this?
// for(int i = 0; i < 2; ++i) {
//     env->DeleteLocalRef(arrays[i]);
// }
free(arrays);

这是否足以避免泄漏内存/保留杂散引用?或者我也应该调用DeleteLocalRef?

编辑: 我确实在IBM SDK for Java的帮助中找到了这个引用,它指出当函数返回Java时它们会被自动清理。但是如果没有自动垃圾收集,引用可能会泄漏。

0 个答案:

没有答案