diff options
author | Wu-cheng Li <wuchengli@google.com> | 2011-07-19 14:47:20 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-07-19 14:47:20 -0700 |
commit | 2cd60e3069e93c11676019c8405d3941cd2ac5b7 (patch) | |
tree | e32f72c949478de5c93885b2518dde05e6540162 /services | |
parent | 9bc7af17974f448291a44912566ec7472a0d798b (diff) | |
parent | 7574da5a501fc9289fee49fdaf1fdb9d47dae2b6 (diff) | |
download | frameworks_av-2cd60e3069e93c11676019c8405d3941cd2ac5b7.zip frameworks_av-2cd60e3069e93c11676019c8405d3941cd2ac5b7.tar.gz frameworks_av-2cd60e3069e93c11676019c8405d3941cd2ac5b7.tar.bz2 |
Merge "Disconnect the native window in CameraService::Client::disconnect."
Diffstat (limited to 'services')
-rw-r--r-- | services/camera/libcameraservice/CameraService.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index 637ccd8..96b26e7 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -458,6 +458,17 @@ status_t CameraService::Client::connect(const sp<ICameraClient>& client) { return NO_ERROR; } +static void disconnectWindow(const sp<ANativeWindow>& window) { + if (window != 0) { + status_t result = native_window_disconnect(window.get(), + NATIVE_WINDOW_API_CAMERA); + if (result != NO_ERROR) { + LOGW("native_window_disconnect failed: %s (%d)", strerror(-result), + result); + } + } +} + void CameraService::Client::disconnect() { int callingPid = getCallingPid(); LOG1("disconnect E (pid %d)", callingPid); @@ -489,6 +500,7 @@ void CameraService::Client::disconnect() { // Release the held ANativeWindow resources. if (mPreviewWindow != 0) { + disconnectWindow(mPreviewWindow); mPreviewWindow = 0; mHardware->setPreviewWindow(mPreviewWindow); } @@ -502,17 +514,6 @@ void CameraService::Client::disconnect() { // ---------------------------------------------------------------------------- -static void disconnectWindow(const sp<ANativeWindow>& window) { - if (window != 0) { - status_t result = native_window_disconnect(window.get(), - NATIVE_WINDOW_API_CAMERA); - if (result != NO_ERROR) { - LOGW("native_window_disconnect failed: %s (%d)", strerror(-result), - result); - } - } -} - status_t CameraService::Client::setPreviewWindow(const sp<IBinder>& binder, const sp<ANativeWindow>& window) { Mutex::Autolock lock(mLock); |