diff --git a/lib/services/entry_manager_service.dart b/lib/services/entry_manager_service.dart index 4782755..51ab550 100644 --- a/lib/services/entry_manager_service.dart +++ b/lib/services/entry_manager_service.dart @@ -264,6 +264,7 @@ class EntryManagerService extends ChangeNotifier { return int.parse(i1.id).compareTo(int.parse(i2.id)); }); final postNodesToReturn = <_Node>{}; + var lastCount = 0; while (allSeenItems.isNotEmpty) { final seenItemsCopy = [...allSeenItems]; for (final item in seenItemsCopy) { @@ -288,11 +289,17 @@ class EntryManagerService extends ChangeNotifier { continue; } else { injectionNode.addChild(newNode); - allSeenItems.remove(item); } } + allSeenItems.remove(item); } } + if (allSeenItems.isNotEmpty && allSeenItems.length == lastCount) { + _logger.severe( + 'Had ${allSeenItems.length} items left over after all iterations'); + break; + } + lastCount = allSeenItems.length; } final updatedPosts = postNodesToReturn