summaryrefslogtreecommitdiffstats
path: root/camera
diff options
context:
space:
mode:
authorEmilian Peev <epeev@mm-sol.com>2012-04-06 17:35:47 +0300
committerWu-cheng Li <wuchengli@google.com>2012-05-08 18:14:52 +0800
commit1e67b5ff2e8016d506cb29900b476435f03cb3a3 (patch)
tree8193e461a82a4cd5d60b5e70343ca0a8933d46c2 /camera
parentbaed3f89bba1cbd3720656f7125f25705be38db7 (diff)
downloadhardware_ti_omap4xxx-1e67b5ff2e8016d506cb29900b476435f03cb3a3.zip
hardware_ti_omap4xxx-1e67b5ff2e8016d506cb29900b476435f03cb3a3.tar.gz
hardware_ti_omap4xxx-1e67b5ff2e8016d506cb29900b476435f03cb3a3.tar.bz2
CameraHal: Remove lock queries from 'mParams' during 'getParameters()'
- A race condition with 'set3ALock()' is possible, which can lead to a segfault during calls to 'getParameters()'. Bug: 6255665 Change-Id: Id64cf3ccfa1e47501d7ba0fb892f2f72329a2ad6 Signed-off-by: Emilian Peev <epeev@mm-sol.com>
Diffstat (limited to 'camera')
-rwxr-xr-xcamera/OMXCameraAdapter/OMXCameraAdapter.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
index 180b441..11ecf0f 100755
--- a/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
+++ b/camera/OMXCameraAdapter/OMXCameraAdapter.cpp
@@ -33,6 +33,8 @@
static int mDebugFps = 0;
static int mDebugFcs = 0;
+#undef TRUE
+#undef FALSE
#define HERE(Msg) {CAMHAL_LOGEB("--===line %d, %s===--\n", __LINE__, Msg);}
@@ -739,17 +741,21 @@ void OMXCameraAdapter::getParameters(CameraParameters& params)
}
//Populate current lock status
- if( (valstr = mParams.get(CameraParameters::KEY_AUTO_EXPOSURE_LOCK)) != NULL )
- {
- CAMHAL_LOGDB("Auto Exposure Lock get %s", mParams.get(CameraParameters::KEY_AUTO_EXPOSURE_LOCK));
- params.set(CameraParameters::KEY_AUTO_EXPOSURE_LOCK, valstr);
- }
+ if ( mParameters3A.ExposureLock ) {
+ params.set(CameraParameters::KEY_AUTO_EXPOSURE_LOCK,
+ CameraParameters::TRUE);
+ } else {
+ params.set(CameraParameters::KEY_AUTO_EXPOSURE_LOCK,
+ CameraParameters::FALSE);
+ }
- if( (valstr = mParams.get(CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK)) != NULL )
- {
- CAMHAL_LOGDB("Auto WhiteBalance Lock get %s", mParams.get(CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK));
- params.set(CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK, valstr);
- }
+ if ( mParameters3A.WhiteBalanceLock ) {
+ params.set(CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK,
+ CameraParameters::TRUE);
+ } else {
+ params.set(CameraParameters::KEY_AUTO_WHITEBALANCE_LOCK,
+ CameraParameters::FALSE);
+ }
LOG_FUNCTION_NAME_EXIT;
}