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
This commit is contained in:
Richard Heck 2012-01-13 03:31:01 +00:00
parent 28d7db3b9f
commit 9283cbdbcb
2 changed files with 6 additions and 1 deletions

View File

@ -4523,6 +4523,8 @@ Buffer::ReadStatus Buffer::reload()
d->filename.refresh(); d->filename.refresh();
docstring const disp_fn = makeDisplayPath(d->filename.absFileName()); docstring const disp_fn = makeDisplayPath(d->filename.absFileName());
// clear parent. this will get reset if need be.
d->setParent(0);
ReadStatus const status = loadLyXFile(); ReadStatus const status = loadLyXFile();
if (status == ReadSuccess) { if (status == ReadSuccess) {
updateBuffer(); updateBuffer();

View File

@ -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;
} }