diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2012-08-20 14:50:45 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-08-20 14:50:45 -0700 |
commit | f96fcd5095e751fc9402d8bbecdf59f53e00d854 (patch) | |
tree | b7a64b5fd7147f047eb12e172bcaf08bf7d45799 /media/jni | |
parent | 4ea6a8eb9fdf83f5327e6c8b65a3d5dac8075f8f (diff) | |
parent | 26f8ce83e04c4efd10c09bb83cfacdcd154d9450 (diff) | |
download | frameworks_base-f96fcd5095e751fc9402d8bbecdf59f53e00d854.zip frameworks_base-f96fcd5095e751fc9402d8bbecdf59f53e00d854.tar.gz frameworks_base-f96fcd5095e751fc9402d8bbecdf59f53e00d854.tar.bz2 |
am 26f8ce83: Merge "To avoid the JNI memory leaks in video editor codes"
* commit '26f8ce83e04c4efd10c09bb83cfacdcd154d9450':
To avoid the JNI memory leaks in video editor codes
Diffstat (limited to 'media/jni')
-rwxr-xr-x | media/jni/mediaeditor/VideoEditorClasses.cpp | 9 | ||||
-rwxr-xr-x | media/jni/mediaeditor/VideoEditorJava.cpp | 3 | ||||
-rwxr-xr-x | media/jni/mediaeditor/VideoEditorMain.cpp | 5 |
3 files changed, 17 insertions, 0 deletions
diff --git a/media/jni/mediaeditor/VideoEditorClasses.cpp b/media/jni/mediaeditor/VideoEditorClasses.cpp index 4e0e0f2..4982a47 100755 --- a/media/jni/mediaeditor/VideoEditorClasses.cpp +++ b/media/jni/mediaeditor/VideoEditorClasses.cpp @@ -1853,6 +1853,9 @@ videoEditClasses_getEditSettings( // Get the clip settings. videoEditClasses_getClipSettings(pResult, pEnv, clipSettings, &pSettings->pClipList[i]); + + // Free the local references to avoid memory leaks + pEnv->DeleteLocalRef(clipSettings); } } } @@ -1877,6 +1880,9 @@ videoEditClasses_getEditSettings( // Get the transition settings. videoEditClasses_getTransitionSettings(pResult, pEnv, transitionSettings, &pSettings->pTransitionList[i]); + + // Free the local references to avoid memory leaks + pEnv->DeleteLocalRef(transitionSettings); } } } @@ -1900,6 +1906,9 @@ videoEditClasses_getEditSettings( // Get the effect settings. videoEditClasses_getEffectSettings(pResult, pEnv, effectSettings, &pSettings->Effects[i]); + + // Free the local references to avoid memory leaks + pEnv->DeleteLocalRef(effectSettings); } } } diff --git a/media/jni/mediaeditor/VideoEditorJava.cpp b/media/jni/mediaeditor/VideoEditorJava.cpp index ec8050f..bcf9099 100755 --- a/media/jni/mediaeditor/VideoEditorJava.cpp +++ b/media/jni/mediaeditor/VideoEditorJava.cpp @@ -387,6 +387,9 @@ videoEditJava_getString( (*pLength) = length; } } + + // Delete local references to avoid memory leaks + pEnv->DeleteLocalRef(string); } // Return the string. diff --git a/media/jni/mediaeditor/VideoEditorMain.cpp b/media/jni/mediaeditor/VideoEditorMain.cpp index 41ec120..41c28c0 100755 --- a/media/jni/mediaeditor/VideoEditorMain.cpp +++ b/media/jni/mediaeditor/VideoEditorMain.cpp @@ -380,6 +380,9 @@ getClipSetting( pEnv->GetIntField(object,fid); M4OSA_TRACE1_1("videoRotation = %d", pSettings->ClipProperties.videoRotationDegrees); + + // Free the local references to avoid memory leaks + pEnv->DeleteLocalRef(clazz); } static void jniPreviewProgressCallback (void* cookie, M4OSA_UInt32 msgType, @@ -1849,7 +1852,9 @@ videoEditor_populateSettings( "not initialized"); if (needToBeLoaded) { getClipSetting(pEnv,properties, pContext->pEditSettings->pClipList[i]); + pEnv->DeleteLocalRef(properties); } else { + pEnv->DeleteLocalRef(properties); goto videoEditor_populateSettings_cleanup; } } |