diff options
author | Gereon Kremer <nafur42@gmail.com> | 2021-09-02 11:50:18 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-02 18:50:18 +0000 |
commit | 67e6694f10919292ecc23b7ced60818ee13025e8 (patch) | |
tree | 8c7f0066fe4a33c6ba4e823782f9a775d07ca0a3 /src/options | |
parent | b88b3cb5d93e4a2639d4ad647389953656e4c9ea (diff) |
Add API check whether option in getOptionInfo() exists (#7093)
This PR adds a missing check in the API for getOptionInfo().
Diffstat (limited to 'src/options')
-rw-r--r-- | src/options/mkoptions.py | 10 | ||||
-rw-r--r-- | src/options/options_public_template.cpp | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/options/mkoptions.py b/src/options/mkoptions.py index 62e70214d..d2881cc94 100644 --- a/src/options/mkoptions.py +++ b/src/options/mkoptions.py @@ -769,6 +769,10 @@ def codegen_all_modules(modules, build_dir, dst_dir, tpls): ['name == "{}"'.format(x) for x in sorted(names)]) # Generate code for getOptionInfo + if option.alias: + alias = ', '.join(map(lambda s: '"{}"'.format(s), option.alias)) + else: + alias = '' if option.name: constr = None fmt = { @@ -788,11 +792,9 @@ def codegen_all_modules(modules, build_dir, dst_dir, tpls): constr = 'OptionInfo::ModeInfo{{"{default}", {value}, {{ {modes} }}}}'.format(**fmt, modes=values) else: constr = 'OptionInfo::VoidInfo{}' - if option.alias: - alias = ', '.join(map(lambda s: '"{}"'.format(s), option.alias)) - else: - alias = '' options_get_info.append('if ({}) return OptionInfo{{"{}", {{{alias}}}, opts.{}.{}WasSetByUser, {}}};'.format(cond, long_get_option(option.long), module.id, option.name, constr, alias=alias)) + else: + options_get_info.append('if ({}) return OptionInfo{{"{}", {{{alias}}}, false, OptionInfo::VoidInfo{{}}}};'.format(cond, long_get_option(option.long), alias=alias)) if setoption_handlers: setoption_handlers.append(' }} else if ({}) {{'.format(cond)) diff --git a/src/options/options_public_template.cpp b/src/options/options_public_template.cpp index 4beb47e0f..9c44dacba 100644 --- a/src/options/options_public_template.cpp +++ b/src/options/options_public_template.cpp @@ -277,7 +277,7 @@ OptionInfo getInfo(const Options& opts, const std::string& name) // clang-format off ${options_get_info}$ // clang-format on - return OptionInfo{name, {}, false, OptionInfo::VoidInfo{}}; + return OptionInfo{"", {}, false, OptionInfo::VoidInfo{}}; } #undef DO_SEMANTIC_CHECKS_BY_DEFAULT |