summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJérémie Courrèges-Anglas <jca@wxcvbn.org>2016-12-01 22:33:53 +0100
committerJérémie Courrèges-Anglas <jca@wxcvbn.org>2016-12-01 22:33:53 +0100
commit53f3fb0e9ead37acd3e16a8779b2e99944674e8f (patch)
tree0bcc45309a0ccaac6cafa4d3abbbadfa9d95901d
parent61bfec557731c2bd4def6ead5c9bf1802a3249ce (diff)
downloadratpoison-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.c6
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;