Fix UB in software renderer

One cannot access elements of the vector that don't exist. `reserve` allocates memory, but doesn't add elements.

`D3DRMVERTEX& dst = m_transformedVerts[i];` is UB and crashes on Windows debug build
This commit is contained in:
Christian Semmler 2025-06-17 03:04:11 +02:00 committed by GitHub
parent 1689a0063f
commit 30ce9d72dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -710,7 +710,7 @@ void Direct3DRMSoftwareRenderer::SubmitDraw(
// Pre-transform all vertex positions and normals
m_transformedVerts.clear();
m_transformedVerts.reserve(mesh.vertices.size());
m_transformedVerts.resize(mesh.vertices.size());
for (size_t i = 0; i < mesh.vertices.size(); ++i) {
const D3DRMVERTEX& src = mesh.vertices[i];
D3DRMVERTEX& dst = m_transformedVerts[i];