]> git.lyx.org Git - lyx.git/commitdiff
Keep the "find the master" recursion in masterDocument().
authorRichard Heck <rgheck@comcast.net>
Wed, 29 Sep 2010 12:55:39 +0000 (12:55 +0000)
committerRichard Heck <rgheck@comcast.net>
Wed, 29 Sep 2010 12:55:39 +0000 (12:55 +0000)
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

index 26e9af733a33aa168eaf3fbe83a50c8498dc64c0..48127b5e7afd7ffcc9f8b37104ec4e979d747419 100644 (file)
@@ -1682,10 +1682,9 @@ void Buffer::validate(LaTeXFeatures & features) const
 
 void Buffer::getLabelList(vector<docstring> & 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;