Improve error reporting when address lines wrong

Before, a weird error would be shown because of the blitter thread
destructor running.
This commit is contained in:
Jeff Epler 2025-03-06 14:23:30 -06:00
parent cfec6060d8
commit 274adf1805

View file

@ -52,11 +52,12 @@ struct piomatter : piomatter_base {
piomatter(std::span<typename colorspace::data_type const> framebuffer, piomatter(std::span<typename colorspace::data_type const> framebuffer,
const matrix_geometry &geometry) const matrix_geometry &geometry)
: framebuffer(framebuffer), geometry{geometry}, converter{}, : framebuffer(framebuffer), geometry{geometry}, converter{},
blitter_thread{&piomatter::blit_thread, this} { blitter_thread{} {
if (geometry.n_addr_lines > std::size(pinout::PIN_ADDR)) { if (geometry.n_addr_lines > std::size(pinout::PIN_ADDR)) {
throw std::runtime_error("too many address lines requested"); throw std::runtime_error("too many address lines requested");
} }
program_init(); program_init();
blitter_thread = std::move(std::thread{&piomatter::blit_thread, this});
show(); show();
} }