Fix some memory leak complaints from Valgrind
[lsnes.git] / src / core / command.cpp
blob91c448f3e13a00ccee78c999126053029a23f5fc
1 #include "core/command.hpp"
2 #include "core/keymapper.hpp"
3 #include "library/globalwrap.hpp"
4 #include "library/threadtypes.hpp"
5 #include "core/misc.hpp"
6 #include "core/window.hpp"
8 #include <set>
9 #include <map>
11 command::group lsnes_cmd;
13 namespace
15 mutex_class alias_ibind_mutex;
16 std::map<std::string, keyboard::invbind*> alias_binds;
19 void refresh_alias_binds()
21 umutex_class h(alias_ibind_mutex);
22 auto a = lsnes_cmd.get_aliases();
23 for(auto i : alias_binds) {
24 if(!a.count(i.first)) {
25 delete i.second;
26 alias_binds[i.first] = NULL;
29 for(auto i : a) {
30 if(i == "" || i[0] == '-')
31 continue;
32 if(!alias_binds.count(i) || alias_binds[i] == NULL)
33 alias_binds[i] = new keyboard::invbind(lsnes_mapper, i, "Aliasā€£" + i);
37 void kill_alias_binds()
39 for(auto i : alias_binds) delete i.second;
40 alias_binds.clear();