mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 15:53:32 +00:00
Fix infinite loop problem in processNewItems method
This commit is contained in:
parent
f8cb7cd440
commit
4d28607714
1 changed files with 8 additions and 1 deletions
|
@ -264,6 +264,7 @@ class EntryManagerService extends ChangeNotifier {
|
||||||
return int.parse(i1.id).compareTo(int.parse(i2.id));
|
return int.parse(i1.id).compareTo(int.parse(i2.id));
|
||||||
});
|
});
|
||||||
final postNodesToReturn = <_Node>{};
|
final postNodesToReturn = <_Node>{};
|
||||||
|
var lastCount = 0;
|
||||||
while (allSeenItems.isNotEmpty) {
|
while (allSeenItems.isNotEmpty) {
|
||||||
final seenItemsCopy = [...allSeenItems];
|
final seenItemsCopy = [...allSeenItems];
|
||||||
for (final item in seenItemsCopy) {
|
for (final item in seenItemsCopy) {
|
||||||
|
@ -288,11 +289,17 @@ class EntryManagerService extends ChangeNotifier {
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
injectionNode.addChild(newNode);
|
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
|
final updatedPosts = postNodesToReturn
|
||||||
|
|
Loading…
Reference in a new issue