@@ -72,7 +72,6 @@ class JNIMediaPlayerListener: public MediaPlayerListener
7272 JNIMediaPlayerListener ();
7373 jclass mClass ; // Reference to MediaPlayer class
7474 jobject mObject ; // Weak ref to MediaPlayer Java object to call on
75- jobject mParcel ;
7675};
7776
7877JNIMediaPlayerListener::JNIMediaPlayerListener (JNIEnv* env, jobject thiz, jobject weak_thiz)
@@ -91,7 +90,6 @@ JNIMediaPlayerListener::JNIMediaPlayerListener(JNIEnv* env, jobject thiz, jobjec
9190 // We use a weak reference so the MediaPlayer object can be garbage collected.
9291 // The reference is only used as a proxy for callbacks.
9392 mObject = env->NewGlobalRef (weak_thiz);
94- mParcel = env->NewGlobalRef (createJavaParcelObject (env));
9593}
9694
9795JNIMediaPlayerListener::~JNIMediaPlayerListener ()
@@ -100,20 +98,18 @@ JNIMediaPlayerListener::~JNIMediaPlayerListener()
10098 JNIEnv *env = AndroidRuntime::getJNIEnv ();
10199 env->DeleteGlobalRef (mObject );
102100 env->DeleteGlobalRef (mClass );
103-
104- recycleJavaParcelObject (env, mParcel );
105- env->DeleteGlobalRef (mParcel );
106101}
107102
108103void JNIMediaPlayerListener::notify (int msg, int ext1, int ext2, const Parcel *obj)
109104{
110105 JNIEnv *env = AndroidRuntime::getJNIEnv ();
111106 if (obj && obj->dataSize () > 0 ) {
112- if (mParcel != NULL ) {
113- Parcel* nativeParcel = parcelForJavaObject (env, mParcel );
107+ jobject jParcel = createJavaParcelObject (env);
108+ if (jParcel != NULL ) {
109+ Parcel* nativeParcel = parcelForJavaObject (env, jParcel);
114110 nativeParcel->setData (obj->data (), obj->dataSize ());
115111 env->CallStaticVoidMethod (mClass , fields.post_event , mObject ,
116- msg, ext1, ext2, mParcel );
112+ msg, ext1, ext2, jParcel );
117113 }
118114 } else {
119115 env->CallStaticVoidMethod (mClass , fields.post_event , mObject ,
0 commit comments