From e251f32b765afa514648d6a5a2d2da5d0f0a2514 Mon Sep 17 00:00:00 2001 From: James Dong Date: Mon, 20 Apr 2009 19:35:28 -0700 Subject: [PATCH] Remove dangling media recorder client reference when setCamera() is used. --- camera/libcameraservice/CameraService.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/camera/libcameraservice/CameraService.cpp b/camera/libcameraservice/CameraService.cpp index cb8ab58827c09..701259e6774ce 100644 --- a/camera/libcameraservice/CameraService.cpp +++ b/camera/libcameraservice/CameraService.cpp @@ -217,7 +217,13 @@ status_t CameraService::Client::unlock() // allow anyone to use camera LOGV("unlock (%p)", getCameraClient()->asBinder().get()); status_t result = checkPid(); - if (result == NO_ERROR) mClientPid = 0; + if (result == NO_ERROR) { + mClientPid = 0; + + // we need to remove the reference so that when app goes + // away, the reference count goes to 0. + mCameraClient.clear(); + } return result; }