From 9283cbdbcb3b33da28d2ecca6cd5665f39c7b388 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Fri, 13 Jan 2012 03:31:01 +0000 Subject: [PATCH] Fix crash reported on list when renaming a child buffer and then trying to compile. There are really two problems here. One is that the renamed buffer needs to be reloaded. All kinds of files, etc, may not exist any more, if we've been saved to a new directory; our children e.g. may not be in the right place. And, in this case, we may no longer be a child of our old parent. Reloading will fix all of that. On reload, though, we need to clear our parent, since we may not have one any more. It will get reset if need be. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40609 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/Buffer.cpp | 2 ++ src/frontends/qt4/GuiView.cpp | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Buffer.cpp b/src/Buffer.cpp index b5756c9116..766cbfe291 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -4523,6 +4523,8 @@ Buffer::ReadStatus Buffer::reload() d->filename.refresh(); docstring const disp_fn = makeDisplayPath(d->filename.absFileName()); + // clear parent. this will get reset if need be. + d->setParent(0); ReadStatus const status = loadLyXFile(); if (status == ReadSuccess) { updateBuffer(); diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp index 5ddfe193fd..964c445ced 100644 --- a/src/frontends/qt4/GuiView.cpp +++ b/src/frontends/qt4/GuiView.cpp @@ -2316,7 +2316,10 @@ bool GuiView::renameBuffer(Buffer & b, docstring const & newname) } } - return saveBuffer(b, fname); + bool const saved = saveBuffer(b, fname); + if (saved) + b.reload(); + return saved; } -- 2.39.2