fix: remaining issues recorded during test coverage work
- RenderManager: GPU-side members (context_, decoder_cache_, shader_cache_, auto_cacher_, worker_pool_, decoder_clear_timer_) were left uninitialized when the configured graphics backend is unknown (e.g. dummy); ViewerWidget then dereferenced garbage and crashed. Initialize them at declaration - CurveView::SelectKeyframesOfInput ignored its reference parameter and selected keyframes of every connected track; select only the requested track's keyframes - SeekableWidget::SeekToScenePoint dereferenced GetViewerNode() unconditionally; skip the playhead update when no viewer is connected - LoadOTIOTask: unknown root schema leaked the freshly allocated project_ (delete + reset; OTIO is not enabled in local builds so this file is compile-verified by inspection only) Locked by new tests: RenderManagerDummyBackend, TimeRuler.SeekToScenePointWithoutViewerIsNoOp, CurveViewTest.SelectKeyframesOfInputSelectsOnlyRequestedTrack
This commit is contained in:
@@ -91,7 +91,7 @@ void CurveView::SelectKeyframesOfInput(const NodeKeyframeTrackReference &ref)
|
||||
{
|
||||
DeselectAll();
|
||||
|
||||
foreach (KeyframeViewInputConnection *con, track_connections_) {
|
||||
if (KeyframeViewInputConnection *con = track_connections_.value(ref)) {
|
||||
foreach (NodeKeyframe *key, con->GetKeyframes()) {
|
||||
SelectKeyframe(key);
|
||||
}
|
||||
|
||||
@@ -433,8 +433,9 @@ void SeekableWidget::SeekToScenePoint(qreal scene)
|
||||
playhead_time += movement;
|
||||
}
|
||||
|
||||
if (playhead_time != GetViewerNode()->GetPlayhead()) {
|
||||
GetViewerNode()->SetPlayhead(playhead_time);
|
||||
ViewerOutput *viewer = GetViewerNode();
|
||||
if (viewer && playhead_time != viewer->GetPlayhead()) {
|
||||
viewer->SetPlayhead(playhead_time);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user