mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-09 02:15:32 +00:00
Fixes #10067. Management of memory for persisted options was wrong in the action struct, as the members key and value would be freed immediately after being added to the temporary vector (because the vector was of the struct rather than of the class). Given the struct is a C struct, we need the memory management to be explicit, so we now release() each option into the vector as we create it, which means that its member values will not be freed when the option is then immediately deleted. (This allows us to use the initial copy of the members of option that option() constructor does.) Added the release() function as that was a relatively clear way of indicating that the contents of the structure are now owned by the caller, following the pattern from std::unique_ptr. Finally, the unit test for persisted options was in the action_api.cpp test module, but it was never called, so this was not being tested. Now it is. |
||
|---|---|---|
| .. | ||
| kmx_test_source | ||
| standards | ||
| unit | ||
| meson.build | ||