+
+ for (j = 0; j < SWM_S_COLOR_MAX; ++j) {
+ free(screens[i].c[j].name);
+ }
+
+ /* Free window memory. */
+ for (j = 0; j < SWM_WS_MAX; ++j) {
+ ws = &screens[i].ws[j];
+ free(ws->name);
+
+ while ((w = TAILQ_FIRST(&ws->winlist)) != NULL) {
+ TAILQ_REMOVE(&ws->winlist, w, entry);
+ free_window(w);
+ }
+
+ while ((w = TAILQ_FIRST(&ws->unmanagedlist)) != NULL) {
+ TAILQ_REMOVE(&ws->unmanagedlist, w, entry);
+ free_window(w);
+ }
+ }
+
+ /* Free region memory. */
+ while ((r = TAILQ_FIRST(&screens[i].rl)) != NULL) {
+ TAILQ_REMOVE(&screens[i].rl, r, entry);
+ free(r->bar);
+ free(r);
+ }
+
+ while ((r = TAILQ_FIRST(&screens[i].orl)) != NULL) {
+ TAILQ_REMOVE(&screens[i].rl, r, entry);
+ free(r->bar);
+ free(r);
+ }