Merge change 602 into donut
* changes:
Bug fix(1807910): media recorder crash due to the use of locked camera object (last part) - remove an unused Camera constructor - add a check on the argument in Camera::create() method
diff --git a/include/ui/Camera.h b/include/ui/Camera.h
index 12fa20f..fd851d9 100644
--- a/include/ui/Camera.h
+++ b/include/ui/Camera.h
@@ -78,7 +78,6 @@
{
public:
// construct a camera client from an existing remote
- Camera(const sp<ICamera>& camera); // to be removed
static sp<Camera> create(const sp<ICamera>& camera);
static sp<Camera> connect();
~Camera();
diff --git a/libs/ui/Camera.cpp b/libs/ui/Camera.cpp
index 0fba82c..41577c4 100644
--- a/libs/ui/Camera.cpp
+++ b/libs/ui/Camera.cpp
@@ -64,22 +64,16 @@
init();
}
-Camera::Camera(const sp<ICamera>& camera)
-{
- init();
- // connect this client to existing camera remote
- if (camera->connect(this) == NO_ERROR) {
- mStatus = NO_ERROR;
- mCamera = camera;
- camera->asBinder()->linkToDeath(this);
- }
-}
-
-
+// construct a camera client from an existing camera remote
sp<Camera> Camera::create(const sp<ICamera>& camera)
{
+ LOGV("create");
+ if (camera == 0) {
+ LOGE("camera remote is a NULL pointer");
+ return 0;
+ }
+
sp<Camera> c = new Camera();
- // connect this client to existing camera remote
if (camera->connect(c) == NO_ERROR) {
c->mStatus = NO_ERROR;
c->mCamera = camera;