diff options
author | Shuzhen Wang <shuzhenwang@google.com> | 2023-06-15 00:39:15 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-06-15 00:39:15 +0000 |
commit | 218db79ead058ab36cedc74b97e0bc1697a6b510 (patch) | |
tree | 395de3ace400125e41e07b19eb20c1614b78e046 | |
parent | da909306232d4236348874392677ef634b347470 (diff) | |
parent | 25152e4e43c92f550d9b2f9939ab3aa236d809de (diff) | |
download | av-218db79ead058ab36cedc74b97e0bc1697a6b510.tar.gz |
Merge "Camera: Fix null pointer exception in CameraServiceProxyWrapper" into udc-dev
-rw-r--r-- | services/camera/libcameraservice/device3/Camera3Device.cpp | 6 | ||||
-rw-r--r-- | services/camera/libcameraservice/utils/CameraServiceProxyWrapper.cpp | 19 |
2 files changed, 12 insertions, 13 deletions
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp index 6a6a3908aa..61c3298403 100644 --- a/services/camera/libcameraservice/device3/Camera3Device.cpp +++ b/services/camera/libcameraservice/device3/Camera3Device.cpp @@ -2374,6 +2374,9 @@ bool Camera3Device::reconfigureCamera(const CameraMetadata& sessionParams, int c //present streams end up with outstanding buffers that will //not get drained. internalUpdateStatusLocked(STATUS_ACTIVE); + + mCameraServiceProxyWrapper->logStreamConfigured(mId, mOperatingMode, + true /*internalReconfig*/, ns2ms(systemTime() - startTime)); } else if (rc == DEAD_OBJECT) { // DEAD_OBJECT can be returned if either the consumer surface is // abandoned, or the HAL has died. @@ -2389,9 +2392,6 @@ bool Camera3Device::reconfigureCamera(const CameraMetadata& sessionParams, int c ALOGE("%s: Failed to pause streaming: %d", __FUNCTION__, rc); } - mCameraServiceProxyWrapper->logStreamConfigured(mId, mOperatingMode, true /*internalReconfig*/, - ns2ms(systemTime() - startTime)); - if (markClientActive) { mStatusTracker->markComponentActive(clientStatusId); } diff --git a/services/camera/libcameraservice/utils/CameraServiceProxyWrapper.cpp b/services/camera/libcameraservice/utils/CameraServiceProxyWrapper.cpp index 3aff2acd74..b58975f234 100644 --- a/services/camera/libcameraservice/utils/CameraServiceProxyWrapper.cpp +++ b/services/camera/libcameraservice/utils/CameraServiceProxyWrapper.cpp @@ -243,12 +243,12 @@ void CameraServiceProxyWrapper::logStreamConfigured(const String8& id, std::shared_ptr<CameraSessionStatsWrapper> sessionStats; { Mutex::Autolock l(mLock); - sessionStats = mSessionStatsMap[id]; - if (sessionStats == nullptr) { + if (mSessionStatsMap.count(id) == 0) { ALOGE("%s: SessionStatsMap should contain camera %s", __FUNCTION__, id.c_str()); return; } + sessionStats = mSessionStatsMap[id]; } ALOGV("%s: id %s, operatingMode %d, internalConfig %d, latencyMs %d", @@ -260,12 +260,12 @@ void CameraServiceProxyWrapper::logActive(const String8& id, float maxPreviewFps std::shared_ptr<CameraSessionStatsWrapper> sessionStats; { Mutex::Autolock l(mLock); - sessionStats = mSessionStatsMap[id]; - if (sessionStats == nullptr) { + if (mSessionStatsMap.count(id) == 0) { ALOGE("%s: SessionStatsMap should contain camera %s when logActive is called", __FUNCTION__, id.c_str()); return; } + sessionStats = mSessionStatsMap[id]; } ALOGV("%s: id %s", __FUNCTION__, id.c_str()); @@ -280,13 +280,12 @@ void CameraServiceProxyWrapper::logIdle(const String8& id, std::shared_ptr<CameraSessionStatsWrapper> sessionStats; { Mutex::Autolock l(mLock); - sessionStats = mSessionStatsMap[id]; - } - - if (sessionStats == nullptr) { - ALOGE("%s: SessionStatsMap should contain camera %s when logIdle is called", + if (mSessionStatsMap.count(id) == 0) { + ALOGE("%s: SessionStatsMap should contain camera %s when logIdle is called", __FUNCTION__, id.c_str()); - return; + return; + } + sessionStats = mSessionStatsMap[id]; } ALOGV("%s: id %s, requestCount %" PRId64 ", resultErrorCount %" PRId64 ", deviceError %d" |