diff --git a/app/render/backend/renderbackend.cpp b/app/render/backend/renderbackend.cpp index b7660f93f..c6fb6e814 100644 --- a/app/render/backend/renderbackend.cpp +++ b/app/render/backend/renderbackend.cpp @@ -148,6 +148,10 @@ void RenderBackend::SetViewerNode(ViewerOutput *viewer_node) copied_viewer_node_ = static_cast(viewer_node_->copy()); copy_map_.insert(viewer_node_, copied_viewer_node_); + // We begin an operation and never end it which prevents the copy from unnecessarily + // invalidating its own cache + copied_viewer_node_->BeginOperation(); + NodeGraphChanged(viewer_node_->texture_input()); NodeGraphChanged(viewer_node_->samples_input()); ProcessUpdateQueue(); diff --git a/app/render/framehashcache.cpp b/app/render/framehashcache.cpp index bedfe7adb..c02d94e91 100644 --- a/app/render/framehashcache.cpp +++ b/app/render/framehashcache.cpp @@ -147,6 +147,9 @@ QString FrameHashCache::GetFormatExtension() QVector FrameHashCache::GetFrameListFromTimeRange(TimeRangeList range_list, const rational &timebase) { + // If timebase is null, this will be an infinite loop + Q_ASSERT(!timebase.isNull()); + QVector times; while (!range_list.isEmpty()) {