[libcamera-devel] [PATCH v2 5/8] cam: options: Store options in a list instead of a vector
Niklas Söderlund
niklas.soderlund at ragnatech.se
Fri Feb 1 10:02:22 CET 2019
Hi Laurent,
Thanks for your work.
On 2019-02-01 01:47:18 +0200, Laurent Pinchart wrote:
> When option are added to the parser, they are stored in the
> OptionsParser::options_ vector, and a pointer to the option referencing
> the vector entry is indexed in the OptionsParser::optionsMap_ map. When
> the next option is added the vector may be resized, which invalidates
> the pointers stored in the map.
>
> Fix this by storing the options in an std::list<> instead of
> std::vector<>.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> src/cam/options.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/cam/options.h b/src/cam/options.h
> index 2272385a0b83..b9b7bd258c03 100644
> --- a/src/cam/options.h
> +++ b/src/cam/options.h
> @@ -8,8 +8,8 @@
> #define __CAM_OPTIONS_H__
>
> #include <ctype.h>
> +#include <list>
> #include <map>
> -#include <vector>
>
> enum OptionArgument {
> ArgumentNone,
> @@ -57,7 +57,7 @@ public:
> void usage();
>
> private:
> - std::vector<Option> options_;
> + std::list<Option> options_;
> std::map<unsigned int, Option *> optionsMap_;
> };
>
> --
> Regards,
>
> Laurent Pinchart
>
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list