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:
parent
7014d94937
commit
8e7f6d1aec
|
@ -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];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue