mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-04-03 07:15:29 -04:00
shm: get_buffer(): make sure buffer->busy is set
When going through the cached buffers, we only set buffer->busy on the *first* re-usable buffer we found. In some cases, we will find more than one re-usable buffer. In this case, we select the “youngest” one (i.e the one most recently used, in the hopes that we can use damage tracking instead of re-rendering the entire buffer). If the “current” buffer is younger than the previously detected, re-usable, buffer, then we unref:ed the previously selected buffer, and replaced it with the current one. But, we did not sanitize it. That is, we did not: * set buffer->busy * clear its dirty region * clear its scroll damage That buffer would eventually get rendered to, and committed to the compositor. Later, the compositor would free it. And there, in our buffer_release() callback, we’d assert that buffer->busy was set. And fail. Closes #844
This commit is contained in:
parent
fb398f473e
commit
fc6533c920
2 changed files with 21 additions and 10 deletions
|
|
@ -60,6 +60,8 @@
|
|||
(https://codeberg.org/dnkl/foot/issues/842).
|
||||
* Key presses triggering keyboard layout switches also being emitted
|
||||
CSI codes in the Kitty keyboard protocol.
|
||||
* Assertion in `shm.c:buffer_release()`
|
||||
(https://codeberg.org/dnkl/foot/issues/844).
|
||||
|
||||
|
||||
### Security
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue