diff options
author | Jérémie Courrèges-Anglas <jca@wxcvbn.org> | 2016-12-01 22:33:53 +0100 |
---|---|---|
committer | Jérémie Courrèges-Anglas <jca@wxcvbn.org> | 2016-12-01 22:33:53 +0100 |
commit | 53f3fb0e9ead37acd3e16a8779b2e99944674e8f (patch) | |
tree | 0bcc45309a0ccaac6cafa4d3abbbadfa9d95901d | |
parent | 61bfec557731c2bd4def6ead5c9bf1802a3249ce (diff) | |
download | ratpoison-53f3fb0e9ead37acd3e16a8779b2e99944674e8f.zip |
sfrestore: partial fix for frame allocation/deallocation
There is still a problem with allocation of screens vs frames. A screen
can have multiple frames (for now this triggers a segfault).
-rw-r--r-- | src/actions.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/actions.c b/src/actions.c index d59cafe..73bc282 100644 --- a/src/actions.c +++ b/src/actions.c @@ -5662,7 +5662,7 @@ cmd_sfrestore (int interactively UNUSED, struct cmdarg **args) ptr++; snum = string_to_positive_int (ptr); - screen = screen_number(snum); + screen = screen_number (snum); if (screen) { /* clobber screen number here, frestore() doesn't need it */ @@ -5698,9 +5698,11 @@ cmd_sfrestore (int interactively UNUSED, struct cmdarg **args) sf_data[i].ret_restore = ret->success; cmdret_free (ret); - sbuf_free (cur_frames); } + for (i = 0; i < s_count; i++) + sbuf_free (sf_data[i].frames); + for (i = 0; i < sf_index; i++) { int ret; |