From: Richard Heck Date: Wed, 29 Sep 2010 12:55:39 +0000 (+0000) Subject: Keep the "find the master" recursion in masterDocument(). X-Git-Tag: 2.0.0~2473 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=a6d22abf03c55f44bb587a007d689c919aab4526;p=lyx.git 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 --- 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;