diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-01-31 20:47:39 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-02-01 11:42:00 +0200 |
commit | 6f3503981a4f20ef3e939a9b91c29ef12d95efd2 (patch) | |
tree | 077601839309287b8b60c2e14f31f1b320051323 | |
parent | 69be770715769bf15fab69bdb650fbcbc0e74db1 (diff) |
cam: options: Store options in a list instead of a vector
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@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r-- | src/cam/options.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cam/options.h b/src/cam/options.h index 2272385a..b9b7bd25 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_; }; |