From 06b44242860d62e12f9abe018c6f974ceaa30bb9 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 1 Feb 2005 09:23:38 +0000 Subject: * Add missing files to dist. * Fix GC and substitute bugs related to self-references. Add a regression test. --- src/libstore/build.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/libstore/build.cc') diff --git a/src/libstore/build.cc b/src/libstore/build.cc index dbfde447e48b..881f2dac8899 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -1329,7 +1329,8 @@ void SubstitutionGoal::init() for (PathSet::iterator i = references.begin(); i != references.end(); ++i) - addWaitee(worker.makeSubstitutionGoal(*i)); + if (*i != storePath) /* ignore self-references */ + addWaitee(worker.makeSubstitutionGoal(*i)); if (waitees.empty()) /* to prevent hang (no wake-up event) */ referencesValid(); @@ -1347,7 +1348,8 @@ void SubstitutionGoal::referencesValid() for (PathSet::iterator i = references.begin(); i != references.end(); ++i) - assert(isValidPath(*i)); + if (*i != storePath) /* ignore self-references */ + assert(isValidPath(*i)); tryNext(); } -- cgit 1.4.1