From: Richard Heck Date: Fri, 13 Jan 2012 03:31:01 +0000 (+0000) Subject: Fix crash reported on list when renaming a child buffer and X-Git-Tag: 2.1.0beta1~2124 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=9283cbdbcb3b33da28d2ecca6cd5665f39c7b388;p=features.git 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 --- 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; }