diff --git a/common/engine/keyboardprocessor/src/km_kbp_options_api.cpp b/common/engine/keyboardprocessor/src/km_kbp_options_api.cpp index 2245a67bec..e50b0a331b 100644 --- a/common/engine/keyboardprocessor/src/km_kbp_options_api.cpp +++ b/common/engine/keyboardprocessor/src/km_kbp_options_api.cpp @@ -44,7 +44,7 @@ km_kbp_state_option_lookup(km_kbp_state const *state, auto & processor = state->processor(); - *value_out = processor.lookup_option(km_kbp_option_scope(scope), key).value; + *value_out = processor.lookup_option(km_kbp_option_scope(scope), key); if (!*value_out) return KM_KBP_STATUS_KEY_ERROR; return KM_KBP_STATUS_OK; diff --git a/common/engine/keyboardprocessor/src/kmx/kmx_options.cpp b/common/engine/keyboardprocessor/src/kmx/kmx_options.cpp index fa26a28187..6b48e59255 100644 --- a/common/engine/keyboardprocessor/src/kmx/kmx_options.cpp +++ b/common/engine/keyboardprocessor/src/kmx/kmx_options.cpp @@ -16,7 +16,7 @@ int KMX_Options::_GetIndex(std::u16string const &key) const { for (auto sp = _kp->Keyboard->dpStoreArray; i != _kp->Keyboard->cxStoreArray; ++i, ++sp) { - if (sp->dpName && sp->dpName == key) break; + if (sp->dpName && sp->dpName == key) return i; } return -1; diff --git a/common/engine/keyboardprocessor/src/kmx/kmx_processevent.cpp b/common/engine/keyboardprocessor/src/kmx/kmx_processevent.cpp index 7aa6dcb562..fd38039d9d 100644 --- a/common/engine/keyboardprocessor/src/kmx/kmx_processevent.cpp +++ b/common/engine/keyboardprocessor/src/kmx/kmx_processevent.cpp @@ -33,7 +33,7 @@ namespace km { } - option kmx_processor::lookup_option(km_kbp_option_scope scope, std::u16string const & key) const + char16_t const * kmx_processor::lookup_option(km_kbp_option_scope scope, std::u16string const & key) const { char16_t const * pValue = nullptr; switch(scope) @@ -48,7 +48,7 @@ namespace km { break; } - return pValue ? option(scope, key, pValue) : option(); + return pValue ? pValue : nullptr; } option kmx_processor::update_option(km_kbp_option_scope scope, std::u16string const & key, std::u16string const & value) diff --git a/common/engine/keyboardprocessor/src/kmx/kmx_processevent.hpp b/common/engine/keyboardprocessor/src/kmx/kmx_processevent.hpp index 16afdd7bb2..29ba66e321 100644 --- a/common/engine/keyboardprocessor/src/kmx/kmx_processevent.hpp +++ b/common/engine/keyboardprocessor/src/kmx/kmx_processevent.hpp @@ -30,7 +30,7 @@ namespace kbp km_kbp_attr const & attributes() const override; km_kbp_status validate() const override; - option lookup_option(km_kbp_option_scope, + char16_t const * lookup_option(km_kbp_option_scope, std::u16string const & key) const override; option update_option(km_kbp_option_scope scope, std::u16string const & key, diff --git a/common/engine/keyboardprocessor/src/mock/mock_processor.cpp b/common/engine/keyboardprocessor/src/mock/mock_processor.cpp index 6735f5a363..bb5c8139fb 100644 --- a/common/engine/keyboardprocessor/src/mock/mock_processor.cpp +++ b/common/engine/keyboardprocessor/src/mock/mock_processor.cpp @@ -84,11 +84,11 @@ namespace km { { } - option mock_processor::lookup_option(km_kbp_option_scope scope, + char16_t const * mock_processor::lookup_option(km_kbp_option_scope scope, std::u16string const & key) const { auto i = _options.find(char16_t(scope) + key); - return i != _options.end() ? option(scope, key, i->second) : option(); + return i != _options.end() ? i->second.c_str() : nullptr; } option mock_processor::update_option(km_kbp_option_scope scope, diff --git a/common/engine/keyboardprocessor/src/mock/mock_processor.hpp b/common/engine/keyboardprocessor/src/mock/mock_processor.hpp index 69601fadbd..7cb2b4d64b 100644 --- a/common/engine/keyboardprocessor/src/mock/mock_processor.hpp +++ b/common/engine/keyboardprocessor/src/mock/mock_processor.hpp @@ -35,7 +35,7 @@ namespace kbp - option lookup_option(km_kbp_option_scope, + char16_t const * lookup_option(km_kbp_option_scope, std::u16string const & key) const override; option update_option(km_kbp_option_scope, std::u16string const & key, diff --git a/common/engine/keyboardprocessor/src/processor.hpp b/common/engine/keyboardprocessor/src/processor.hpp index 598c04bc33..68a05597d8 100644 --- a/common/engine/keyboardprocessor/src/processor.hpp +++ b/common/engine/keyboardprocessor/src/processor.hpp @@ -43,7 +43,7 @@ namespace kbp virtual km_kbp_attr const & attributes() const = 0; virtual km_kbp_status validate() const = 0; - virtual option lookup_option(km_kbp_option_scope, + virtual char16_t const * lookup_option(km_kbp_option_scope, std::u16string const & key) const = 0; virtual option update_option(km_kbp_option_scope, std::u16string const & key,