Skip to content

Commit

Permalink
Fixed infinite loop
Browse files Browse the repository at this point in the history
- fixed infinite loop while building slider list, when more than one
screen was created
  • Loading branch information
ImJezze committed Mar 2, 2016
1 parent 0e76ce8 commit 546f7a2
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 27 deletions.
28 changes: 2 additions & 26 deletions src/osd/windows/window.cpp
Expand Up @@ -274,39 +274,15 @@ void windows_osd_interface::update_slider_list()
{
for (win_window_info *window = win_window_list; window != nullptr; window = window->m_next)
{
// every created window uses the same renderer
if (window->m_renderer && window->m_renderer->sliders_dirty())
{
build_slider_list();
m_sliders = window->m_renderer->get_slider_list();
return;
}
}
}

void windows_osd_interface::build_slider_list()
{
m_sliders = nullptr;
slider_state *curr = m_sliders;
for (win_window_info *info = win_window_list; info != nullptr; info = info->m_next)
{
slider_state *window_sliders = info->m_renderer->get_slider_list();
if (window_sliders != nullptr)
{
if (m_sliders == nullptr)
{
m_sliders = curr = window_sliders;
}
else
{
while (curr->next != nullptr)
{
curr = curr->next;
}
curr->next = window_sliders;
}
}
}
}

//============================================================
// winwindow_exit
// (main thread)
Expand Down
1 change: 0 additions & 1 deletion src/osd/windows/winmain.h
Expand Up @@ -271,7 +271,6 @@ class windows_osd_interface : public osd_common_t

private:
virtual void osd_exit() override;
void build_slider_list();
void update_slider_list();

windows_options & m_options;
Expand Down

0 comments on commit 546f7a2

Please sign in to comment.