compile fix: ISO C++ forbids variable length array 'names'
Mathias Gumz akira at fluxbox dot org
2 files changed,
10 insertions(+),
6 deletions(-)
M
src/Ewmh.cc
→
src/Ewmh.cc
@@ -822,7 +822,7 @@ XTextProperty text;
const BScreen::WorkspaceNames &workspacenames = screen.getWorkspaceNames(); const size_t number_of_desks = workspacenames.size(); - char *names[number_of_desks]; + char** names = new char*[number_of_desks]; for (size_t i = 0; i < number_of_desks; i++) { names[i] = new char[workspacenames[i].size() + 1]; // +1 for \0@@ -844,13 +844,15 @@
#else if (XStringListToTextProperty(names, number_of_desks, &text)) { XSetTextProperty(FbTk::App::instance()->display(), screen.rootWindow().window(), - &text, m_net->desktop_names); + &text, m_net->desktop_names); XFree(text.value); } #endif for (size_t i = 0; i < number_of_desks; i++) - delete [] names[i]; + delete[] names[i]; + + delete[] names; }
M
src/Gnome.cc
→
src/Gnome.cc
@@ -228,7 +228,7 @@
size_t number_of_desks = screen.getWorkspaceNames().size(); const BScreen::WorkspaceNames &workspace_names = screen.getWorkspaceNames(); // convert our desktop names to a char * so we can send it - char *names[number_of_desks]; + char** names = new char*[number_of_desks]; for (size_t i = 0; i < number_of_desks; i++) { names[i] = new char[workspace_names[i].size() + 1];@@ -238,13 +238,15 @@
XTextProperty text; if (XStringListToTextProperty(names, number_of_desks, &text)) { XSetTextProperty(FbTk::App::instance()->display(), screen.rootWindow().window(), - &text, m_gnome_wm_win_workspace_names); + &text, m_gnome_wm_win_workspace_names); XFree(text.value); } // destroy name buffers for (size_t i = 0; i < number_of_desks; i++) - delete [] names[i]; + delete[] names[i]; + + delete[] names; } void Gnome::updateCurrentWorkspace(BScreen &screen) {