From 13b9d23e2f4ada95a48dfce46ab393ace5280bfd Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Mon, 18 Mar 2024 22:29:41 +0100 Subject: [PATCH] View: fix potential assertion failure on destroy If a View is destroyed while part of a transaction we can currently hit an assertion failure, this commit fixes it. --- river/View.zig | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/river/View.zig b/river/View.zig index 7430e4a..a11bd92 100644 --- a/river/View.zig +++ b/river/View.zig @@ -350,7 +350,11 @@ pub fn commitTransaction(view: *View) void { view.current = view.inflight; }, - .none => {}, + // This may seem pointless at first glance, but is in fact necessary + // to prevent an assertion failure in Root.commitTransaction() as that + // function assumes that the inflight tags/output will be applied by + // View.commitTransaction() even for views being destroyed. + .none => view.current = view.inflight, } view.updateSceneState();