]> git.sesse.net Git - nageru/blobdiff - nageru/theme.cpp
Fix a Lua crash on exit.
[nageru] / nageru / theme.cpp
index 63070da78bd6a82fe16cdabe6e2085607224cfa9..35046c18ee17a0b77dc474c51d3cf5fae9c21b39 100644 (file)
@@ -745,10 +745,10 @@ int InputStateInfo_get_human_readable_resolution(lua_State* L)
        string str;
        if (!input_state_info->last_is_connected[signal_num]) {
                str = "disconnected";
-       } else if (input_state_info->last_height[signal_num]) {
+       } else if (input_state_info->last_height[signal_num] <= 0) {
                str = "no signal";
        } else if (!input_state_info->last_has_signal[signal_num]) {
-               if (input_state_info->last_height[signal_num]) {
+               if (input_state_info->last_height[signal_num] == 525) {
                        // Special mode for the USB3 cards.
                        str = "no signal";
                } else {
@@ -1768,9 +1768,9 @@ void destroy(T &ref)
 Theme::MenuEntry::~MenuEntry()
 {
        if (is_submenu) {
-               luaL_unref(entry.L, LUA_REGISTRYINDEX, entry.lua_ref);
-       } else {
                destroy(submenu);
+       } else {
+               luaL_unref(entry.L, LUA_REGISTRYINDEX, entry.lua_ref);
        }
 }
 
@@ -1822,9 +1822,7 @@ int Theme::set_theme_menu(lua_State *L)
        for (int i = 1; i <= num_elements; ++i) {
                root_menu.emplace_back(create_theme_menu_entry(L, i));
        }
-       fprintf(stderr, "now creating a new one\n");
        theme_menu.reset(new MenuEntry("", move(root_menu)));
-       fprintf(stderr, "DONE reset\n");
 
        lua_pop(L, num_elements);
        assert(lua_gettop(L) == 0);