diff --git a/src/dwarfs/inode_manager.cpp b/src/dwarfs/inode_manager.cpp index 98c04e4b..cccf1a29 100644 --- a/src/dwarfs/inode_manager.cpp +++ b/src/dwarfs/inode_manager.cpp @@ -333,6 +333,9 @@ void inode_manager_::order_inodes_by_nilsimsa( index.resize(count); std::iota(index.begin(), index.end(), 0); + auto empty = std::partition(index.begin(), index.end(), + [&](auto i) { return inodes[i]->size() > 0; }); + auto finalize_inode = [&]() { inodes_.push_back(std::move(inodes[index.back()])); index.pop_back(); @@ -340,9 +343,6 @@ void inode_manager_::order_inodes_by_nilsimsa( fn(inodes_.back()); }; - auto empty = std::partition(index.begin(), index.end(), - [&](auto i) { return inodes[i]->size() > 0; }); - if (empty != index.end()) { assert(empty + 1 == index.end()); finalize_inode();