aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2014-03-06 13:01:51 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2014-03-06 13:01:51 +0000
commit78e783e7863eb33981da4a5ad48dd9e2aa2b08dd (patch)
tree3dd6a49f7add0af929ba79b64f1c6151e9dc8ca2
parentcbd360b7dd1f2ca1a3208d3e19af84e0e536f6b9 (diff)
downloadrtmux-78e783e7863eb33981da4a5ad48dd9e2aa2b08dd.tar.gz
rtmux-78e783e7863eb33981da4a5ad48dd9e2aa2b08dd.tar.bz2
rtmux-78e783e7863eb33981da4a5ad48dd9e2aa2b08dd.zip
Don't segfaut when the parent of the layout cell is NULL, from Thomas Adam.
-rw-r--r--window.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/window.c b/window.c
index 1dd70c44..9a26b904 100644
--- a/window.c
+++ b/window.c
@@ -420,10 +420,15 @@ window_pane_active_set(struct window_pane *wp, struct window_pane *nextwp)
void
window_pane_active_lost(struct window_pane *wp, struct window_pane *nextwp)
{
- struct layout_cell *lc, *lc2;
+ struct layout_cell *lc, *lc2, *lcparent;
+
+ /* Get the parent cell. */
+ lcparent = nextwp->layout_cell->parent;
+ if (lcparent == NULL)
+ return;
/* Save the target pane in its parent. */
- nextwp->layout_cell->parent->lastwp = nextwp;
+ lcparent->lastwp = nextwp;
/*
* Save the source pane in all of its parents up to, but not including,
@@ -432,8 +437,7 @@ window_pane_active_lost(struct window_pane *wp, struct window_pane *nextwp)
if (wp == NULL)
return;
for (lc = wp->layout_cell->parent; lc != NULL; lc = lc->parent) {
- lc2 = nextwp->layout_cell->parent;
- for (; lc2 != NULL; lc2 = lc2->parent) {
+ for (lc2 = lcparent; lc2 != NULL; lc2 = lc2->parent) {
if (lc == lc2)
return;
}