[PATCH v2] libcamera: Fix maybe-uninitialized error
Jacopo Mondi
jacopo.mondi at ideasonboard.com
Fri Jun 28 12:08:37 CEST 2024
Hi Stefan
On Fri, Jun 28, 2024 at 11:36:02AM GMT, Stefan Klug wrote:
> The gcc used in my current buildroot (Version 12.3) errors out with
> -Wmaybe-uninitialized. Fix that.
>
> Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
> Reviewed-by: Naushir Patuck <naush at raspberrypi.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> ---
> Changes in v2:
> - Changed the error handling in AwbConfg::read as proposed by Naushir
> - Removed unnecessary rewrapping of a comment
>
> src/ipa/libipa/exposure_mode_helper.cpp | 9 +++------
> src/ipa/rpi/controller/rpi/awb.cpp | 2 +-
> src/libcamera/device_enumerator_sysfs.cpp | 2 +-
> src/libcamera/pipeline/rpi/vc4/vc4.cpp | 2 +-
> 4 files changed, 6 insertions(+), 9 deletions(-)
>
> diff --git a/src/ipa/libipa/exposure_mode_helper.cpp b/src/ipa/libipa/exposure_mode_helper.cpp
> index 683a564a01c8..7703becc4766 100644
> --- a/src/ipa/libipa/exposure_mode_helper.cpp
> +++ b/src/ipa/libipa/exposure_mode_helper.cpp
> @@ -166,7 +166,7 @@ ExposureModeHelper::splitExposure(utils::Duration exposure) const
> return { minShutter_, minGain_, exposure / (minShutter_ * minGain_) };
>
> utils::Duration shutter;
> - double stageGain;
> + double stageGain = 1.0;
> double gain;
>
> for (unsigned int stage = 0; stage < gains_.size(); stage++) {
> @@ -201,12 +201,9 @@ ExposureModeHelper::splitExposure(utils::Duration exposure) const
> * From here on all we can do is max out the shutter time, followed by
> * the analogue gain. If we still haven't achieved the target we send
> * the rest of the exposure time to digital gain. If we were given no
> - * stages to use then set stageGain to 1.0 so that shutter time is maxed
> - * before gain touched at all.
> + * stages to use then the default stageGain of 1.0 is used so that
> + * shutter time is maxed before gain is touched at all.
> */
> - if (gains_.empty())
> - stageGain = 1.0;
> -
> shutter = clampShutter(exposure / clampGain(stageGain));
> gain = clampGain(exposure / shutter);
>
> diff --git a/src/ipa/rpi/controller/rpi/awb.cpp b/src/ipa/rpi/controller/rpi/awb.cpp
> index 003c8fa137f3..f45525bce2d1 100644
> --- a/src/ipa/rpi/controller/rpi/awb.cpp
> +++ b/src/ipa/rpi/controller/rpi/awb.cpp
> @@ -122,7 +122,7 @@ int AwbConfig::read(const libcamera::YamlObject ¶ms)
> }
> if (priors.empty()) {
> LOG(RPiAwb, Error) << "AwbConfig: no AWB priors configured";
> - return ret;
> + return -EINVAL;
> }
> }
> if (params.contains("modes")) {
> diff --git a/src/libcamera/device_enumerator_sysfs.cpp b/src/libcamera/device_enumerator_sysfs.cpp
> index fc33ba52b813..7866885c0f73 100644
> --- a/src/libcamera/device_enumerator_sysfs.cpp
> +++ b/src/libcamera/device_enumerator_sysfs.cpp
> @@ -33,7 +33,7 @@ int DeviceEnumeratorSysfs::init()
> int DeviceEnumeratorSysfs::enumerate()
> {
> struct dirent *ent;
> - DIR *dir;
> + DIR *dir = nullptr;
>
> static const char * const sysfs_dirs[] = {
> "/sys/subsystem/media/devices",
> diff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> index 4a89e35f5d7b..e5b6ef2b37cd 100644
> --- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> +++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> @@ -802,7 +802,7 @@ void Vc4CameraData::ispInputDequeue(FrameBuffer *buffer)
> void Vc4CameraData::ispOutputDequeue(FrameBuffer *buffer)
> {
> RPi::Stream *stream = nullptr;
> - unsigned int index;
> + unsigned int index = 0;
>
> if (!isRunning())
> return;
> --
> 2.43.0
>
More information about the libcamera-devel
mailing list