oc: avoid change number leaking when refreshing folder.

Everytime a folder where its last operation was delete some email was
requesting change numbers that were not used.
This commit is contained in:
Jesús García Sáez 2015-01-23 18:15:44 +01:00
parent 7014d94937
commit 8e7f6d1aec

View file

@ -637,16 +637,18 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
fetchResults = [(SOGoMailFolder *) sogoObject fetchResults = [(SOGoMailFolder *) sogoObject
fetchUIDsOfVanishedItems: lastModseqNbr]; fetchUIDsOfVanishedItems: lastModseqNbr];
max = [fetchResults count]; max = [fetchResults count];
changeNumbers = [[self context] getNewChangeNumbers: max];
changeNumber = nil; changeNumber = nil;
for (count = 0; count < max; count++) for (count = 0; count < max; count++)
{ {
uid = [[fetchResults objectAtIndex: count] stringValue]; uid = [[fetchResults objectAtIndex: count] stringValue];
if ([messages objectForKey: uid]) if ([messages objectForKey: uid])
{ {
newChangeNum = [[changeNumbers objectAtIndex: count] if (!changeNumber)
unsignedLongLongValue]; {
changeNumber = [NSString stringWithUnsignedLongLong: newChangeNum]; newChangeNum = [[self context] getNewChangeNumber];
changeNumber = [NSString stringWithUnsignedLongLong: newChangeNum];
}
[messages removeObjectForKey: uid]; [messages removeObjectForKey: uid];
[self logWithFormat: @"Removed message entry for UID %@", uid]; [self logWithFormat: @"Removed message entry for UID %@", uid];
} }