From e1aa59ba7b3a9fb578995ee8ffcd232c11a97842 Mon Sep 17 00:00:00 2001 From: ztenghui Date: Fri, 25 Oct 2013 14:56:32 -0700 Subject: Fix memory leak due to inner class for handler. To keep the existing interface, we just overwrite the handler here. bug:11336965 Change-Id: I77b2f577279244439ee9f81344f47bf5773e527b --- src/com/android/camera/AndroidCameraManagerImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/com/android/camera/AndroidCameraManagerImpl.java b/src/com/android/camera/AndroidCameraManagerImpl.java index d9e21fdd0..ac9b7eb4e 100644 --- a/src/com/android/camera/AndroidCameraManagerImpl.java +++ b/src/com/android/camera/AndroidCameraManagerImpl.java @@ -814,7 +814,10 @@ class AndroidCameraManagerImpl implements CameraManager { private CameraOpenErrorCallbackForward( Handler h, CameraOpenErrorCallback cb) { - mHandler = h; + // Given that we are using the main thread handler, we can create it + // here instead of holding onto the PhotoModule objects. In this + // way, we can avoid memory leak. + mHandler = new Handler(Looper.getMainLooper()); mCallback = cb; } -- cgit v1.2.3