From 45de08aaaebc86238d2d323e02d224f854773174 Mon Sep 17 00:00:00 2001 From: Leonardo Zide Date: Mon, 5 Oct 2026 13:33:16 -0700 Subject: [PATCH] Propagate framebuffer tile readback failures before copying pixels --- common/lc_view.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/common/lc_view.cpp b/common/lc_view.cpp index 49e3b026..c1ae797a 100644 --- a/common/lc_view.cpp +++ b/common/lc_view.cpp @@ -998,9 +998,22 @@ void lcView::OnDraw() UnbindRenderFramebuffer(); QImage TileImage = GetRenderFramebufferImage(); BindRenderFramebuffer(); - quint8* Buffer = TileImage.bits(); + + if (TileImage.isNull()) + { + mRenderImage = QImage(); + return; + } + + const quint8* Buffer = TileImage.constBits(); uchar* ImageBuffer = mRenderImage.bits(); + if (!ImageBuffer) + { + mRenderImage = QImage(); + return; + } + quint32 TileY = 0, SrcY = 0; if (CurrentTileRow != TotalTileRows - 1) TileY = (TotalTileRows - CurrentTileRow - 1) * mHeight - ((mHeight - mRenderImage.height() % mHeight) % mHeight); @@ -1011,7 +1024,7 @@ void lcView::OnDraw() for (int y = 0; y < CurrentTileHeight; y++) { - quint8* src = Buffer + (SrcY + y) * mWidth * 4; + const quint8* src = Buffer + (SrcY + y) * mWidth * 4; quint8* dst = ImageBuffer + TileStart + y * mRenderImage.width() * 4; memcpy(dst, src, CurrentTileWidth * 4);