On 28/10/2017 13:29, Ken Brown wrote:
This can be empty if no setup.ini files are found. Removing it causes
setup to hang.
---
package_db.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package_db.cc b/package_db.cc
index ac9387c..b104073 100644
--- a/package_db.cc
+++ b/package_db.cc
@@ -596,7 +596,7 @@ packagedb::removeEmptyCategories()
{
for (packagedb::categoriesType::iterator n =
packagedb::categories.begin();
n != packagedb::categories.end(); ++n)
- if (!n->second.size())
+ if (!n->second.size() && n->first != "Base")
{
Log (LOG_BABBLE) << "Removing empty category " << n->first
<< endLog;
packagedb::categories.erase (n++);
Hmm... now I remember my other concerns about this piece of code: as
written, it's just wrong.
1. Applying erase to packagedb:categories invalidates the iterator
2. We're incrementing the iterator after doing an erase, so even if the
iterator was still valid, we skip checking if the following category is
empty
So maybe the right way to fix this is as attached: