diff options
| author | 2009-04-24 14:24:20 -0700 | |
|---|---|---|
| committer | 2009-04-24 14:24:20 -0700 | |
| commit | f670127afccf156681db8a144e49cecb22d744e1 (patch) | |
| tree | e88e38c9992fdc03f8b99ba63f0874c11ea49386 /camera/libcameraservice/CameraService.cpp | |
| parent | 13b3b5c9b2594fe2a42e479ae4f3f733fce911dc (diff) | |
| parent | d004ee1b0a1f869f5e48ffc29b8ce9c6a8c77e23 (diff) | |
Merge commit 'goog/master' into merge_master
Diffstat (limited to 'camera/libcameraservice/CameraService.cpp')
| -rw-r--r-- | camera/libcameraservice/CameraService.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/camera/libcameraservice/CameraService.cpp b/camera/libcameraservice/CameraService.cpp index cb8ab58827c0..96ee5022415e 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; } @@ -894,8 +900,6 @@ status_t CameraService::Client::setParameters(const String8& params) // get preview/capture parameters - key/value pairs String8 CameraService::Client::getParameters() const { - LOGD("getParameters"); - Mutex::Autolock lock(mLock); if (mHardware == 0) { @@ -903,7 +907,9 @@ String8 CameraService::Client::getParameters() const return String8(); } - return mHardware->getParameters().flatten(); + String8 params(mHardware->getParameters().flatten()); + LOGD("getParameters(%s)", params.string()); + return params; } void CameraService::Client::postAutoFocus(bool focused) |