From 08d7778f081aae745e6ad9e5350221b21dbf352e Mon Sep 17 00:00:00 2001 From: Kimiyoshi Kusaka Date: Mon, 28 Mar 2011 11:58:51 +0900 Subject: Fix memory leak of SkMovie class Movie class doesn't have finalize method. So memory leak of SkMovie class of native Skia occurs when Movie class is released. I add finalize method to Movie class (Movie.java) and jni destructor method to SkMovie class (Movie.cpp). Change-Id: I4dae9dd95f128cbfade50bef978b219ba99321dd --- core/jni/android/graphics/Movie.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'core/jni/android') diff --git a/core/jni/android/graphics/Movie.cpp b/core/jni/android/graphics/Movie.cpp index de18f9f..d1a5546 100644 --- a/core/jni/android/graphics/Movie.cpp +++ b/core/jni/android/graphics/Movie.cpp @@ -115,6 +115,10 @@ static jobject movie_decodeByteArray(JNIEnv* env, jobject clazz, return create_jmovie(env, moov); } +static void movie_destructor(JNIEnv* env, jobject, SkMovie* movie) { + delete movie; +} + ////////////////////////////////////////////////////////////////////////////////////////////// #include @@ -129,6 +133,7 @@ static JNINativeMethod gMethods[] = { (void*)movie_draw }, { "decodeStream", "(Ljava/io/InputStream;)Landroid/graphics/Movie;", (void*)movie_decodeStream }, + { "nativeDestructor","(I)V", (void*)movie_destructor }, { "decodeByteArray", "([BII)Landroid/graphics/Movie;", (void*)movie_decodeByteArray }, }; -- cgit v1.1