From 274adf180586b68b34a8f62303f2e36f7dc5fd7c Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Thu, 6 Mar 2025 14:23:30 -0600 Subject: [PATCH] Improve error reporting when address lines wrong Before, a weird error would be shown because of the blitter thread destructor running. --- src/include/piomatter/piomatter.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/include/piomatter/piomatter.h b/src/include/piomatter/piomatter.h index 4f91fc3..918811e 100644 --- a/src/include/piomatter/piomatter.h +++ b/src/include/piomatter/piomatter.h @@ -52,11 +52,12 @@ struct piomatter : piomatter_base { piomatter(std::span framebuffer, const matrix_geometry &geometry) : framebuffer(framebuffer), geometry{geometry}, converter{}, - blitter_thread{&piomatter::blit_thread, this} { + blitter_thread{} { if (geometry.n_addr_lines > std::size(pinout::PIN_ADDR)) { throw std::runtime_error("too many address lines requested"); } program_init(); + blitter_thread = std::move(std::thread{&piomatter::blit_thread, this}); show(); }