From a6d22abf03c55f44bb587a007d689c919aab4526 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Wed, 29 Sep 2010 12:55:39 +0000 Subject: [PATCH] Keep the "find the master" recursion in masterDocument(). We should probably be checking for recursive includes here, and we want to do that in one place. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35537 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/Buffer.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 26e9af733a..48127b5e7a 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -1682,10 +1682,9 @@ void Buffer::validate(LaTeXFeatures & features) const void Buffer::getLabelList(vector & list) const { - // If this is a child document, use the parent's list instead. - Buffer const * const pbuf = d->parent(); - if (pbuf) { - pbuf->getLabelList(list); + // If this is a child document, use the master's list instead. + if (parent()) { + masterBuffer()->getLabelList(list); return; } @@ -1704,9 +1703,8 @@ void Buffer::updateBibfilesCache(UpdateScope scope) const { // FIXME This is probably unnecssary, given where we call this. // If this is a child document, use the parent's cache instead. - Buffer const * const pbuf = d->parent(); - if (pbuf && scope != UpdateChildOnly) { - pbuf->updateBibfilesCache(); + if (parent() && scope != UpdateChildOnly) { + masterBuffer()->updateBibfilesCache(); return; } @@ -2483,13 +2481,15 @@ Buffer const * Buffer::parent() const ListOfBuffers Buffer::allRelatives() const { if (parent()) - return parent()->allRelatives(); + return masterBuffer()->allRelatives(); return getChildren(/* true */); } Buffer const * Buffer::masterBuffer() const { + // FIXME Should be make sure we are not in some kind + // of recursive include? A -> B -> A will crash this. Buffer const * const pbuf = d->parent(); if (!pbuf) return this;