From 9a46fc58911e87de86b52e34f9571d5fe656db16 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Mon, 21 Sep 2020 12:28:47 +1000 Subject: [PATCH] cache: invalidate AFTER iterating map Fixes #1183 --- app/render/framehashcache.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/render/framehashcache.cpp b/app/render/framehashcache.cpp index b65234dc5..387baa12e 100644 --- a/app/render/framehashcache.cpp +++ b/app/render/framehashcache.cpp @@ -358,12 +358,17 @@ void FrameHashCache::HashDeleted(const QString& s, const QByteArray &hash) return; } + TimeRangeList ranges_to_invalidate; QMap::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)