Merge "Camera2: Always disconnect in the client destructor" into jb-mr1-dev
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index 6fbd6ed..124d24d 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -409,6 +409,9 @@
 // tear down the client
 CameraService::Client::~Client() {
     mCameraService->releaseSound();
+
+    // unconditionally disconnect. function is idempotent
+    Client::disconnect();
 }
 
 // ----------------------------------------------------------------------------
@@ -433,6 +436,7 @@
     return client;
 }
 
+// NOTE: function is idempotent
 void CameraService::Client::disconnect() {
     mCameraService->removeClient(mCameraClient);
     mCameraService->setCameraFree(mCameraId);