cache: invalidate AFTER iterating map

Fixes #1183
This commit is contained in:
itsmattkc
2020-09-21 12:28:47 +10:00
parent 7bdaf78af8
commit 9a46fc5891
+6 -1
View File
@@ -358,12 +358,17 @@ void FrameHashCache::HashDeleted(const QString& s, const QByteArray &hash)
return;
}
TimeRangeList ranges_to_invalidate;
QMap<rational, QByteArray>::const_iterator i;
for (i=time_hash_map_.constBegin(); i!=time_hash_map_.constEnd(); i++) {
if (i.value() == hash) {
Invalidate(TimeRange(i.key(), i.key() + timebase_));
ranges_to_invalidate.InsertTimeRange(TimeRange(i.key(), i.key() + timebase_));
}
}
foreach (const TimeRange& range, ranges_to_invalidate) {
Invalidate(range);
}
}
void FrameHashCache::ProjectInvalidated(Project *p)