Skip to content

Commit

Permalink
Fix crash during camera close
Browse files Browse the repository at this point in the history
Move LINK_mm_camera_destroy call to ~MMCameraDL, call mMMCameraDLRef.clear() from
QualcommCameraHardware destructor to make the behaviour consistent
with CAF;s kk_2.7_rb1.29 release
  • Loading branch information
Dorregaray committed Mar 5, 2014
1 parent 9be300b commit 652a80d
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions QualcommCameraHardware.cpp
Expand Up @@ -3333,22 +3333,22 @@ void QualcommCameraHardware::release()
ALOGV("release X: mCameraRunning = %d, mFrameThreadRunning = %d", mCameraRunning, mFrameThreadRunning);
ALOGV("mVideoThreadRunning = %d, mSnapshotThreadRunning = %d, mJpegThreadRunning = %d", mVideoThreadRunning, mSnapshotThreadRunning, mJpegThreadRunning);
ALOGV("camframe_timeout_flag = %d, mAutoFocusThreadRunning = %d", camframe_timeout_flag, mAutoFocusThreadRunning);

libmmcamera = NULL;
mMMCameraDLRef.clear();
}

QualcommCameraHardware::~QualcommCameraHardware()
{
ALOGI("~QualcommCameraHardware E");
LINK_mm_camera_destroy();

if (mCurrentTarget == TARGET_MSM7630 || mCurrentTarget == TARGET_QSD8250 || mCurrentTarget == TARGET_MSM8660) {
delete [] recordframes;
recordframes = NULL;
delete [] record_buffers_tracking_flag;
record_buffers_tracking_flag = NULL;
}

libmmcamera = NULL;
mMMCameraDLRef.clear();

ALOGI("~QualcommCameraHardware X");
}

Expand Down Expand Up @@ -6398,6 +6398,7 @@ void * QualcommCameraHardware::MMCameraDL::pointer(){

QualcommCameraHardware::MMCameraDL::~MMCameraDL(){
ALOGV("~MMCameraDL: E");
LINK_mm_camera_destroy();
#if DLOPEN_LIBMMCAMERA
if (libmmcamera != NULL) {
::dlclose(libmmcamera);
Expand Down

0 comments on commit 652a80d

Please sign in to comment.