summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2009-04-27 12:01:59 -0700
committerJames Dong <jdong@google.com>2009-04-27 12:01:59 -0700
commit325ac475c51dc0d54503f725179ea2d9353485bb (patch)
tree4345b6602a076488623b2815f1af55f112b8b7d3 /libs
parent3eab744d018924189b1b8f5530accd52e91213de (diff)
downloadframeworks_base-325ac475c51dc0d54503f725179ea2d9353485bb.zip
frameworks_base-325ac475c51dc0d54503f725179ea2d9353485bb.tar.gz
frameworks_base-325ac475c51dc0d54503f725179ea2d9353485bb.tar.bz2
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
Diffstat (limited to 'libs')
-rw-r--r--libs/ui/Camera.cpp20
1 files changed, 7 insertions, 13 deletions
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 @@ Camera::Camera()
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;