Failing to release virtual machine resources results in a 'memory leak.' The following example is missing the
ReleaseIntArrayElements call:
jint * tempArray = env->GetIntArrayElements(jiArray, false);
if (tempArray )
{
return;
}
if (...) // exception occurred.
{
// Missing the call ReleaseIntArrayElements
return;
}
// Normal return
env->ReleaseIntArrayElements(jiArray, tempArray, JNI_ABORT);
Call
ReleaseIntArrayElements whenever you call the
GetIntArrayElements function.