[Scummvm-git-logs] scummvm master -> 8d8ad8f811053c9a0f485344858cc4024165f32b

lephilousophe noreply at scummvm.org
Sun Mar 17 19:34:04 UTC 2024


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
8d8ad8f811 WINTERMUTE: Fix segfault in Wintermute 3D with shaders


Commit: 8d8ad8f811053c9a0f485344858cc4024165f32b
    https://github.com/scummvm/scummvm/commit/8d8ad8f811053c9a0f485344858cc4024165f32b
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2024-03-17T20:33:07+01:00

Commit Message:
WINTERMUTE: Fix segfault in Wintermute 3D with shaders

The mesh attributes were accessed before it was loaded.

Changed paths:
    engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp


diff --git a/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp b/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
index 031b2466547..205ab05ec28 100644
--- a/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
+++ b/engines/wintermute/base/gfx/opengl/meshx_opengl_shader.cpp
@@ -52,11 +52,11 @@ XMeshOpenGLShader::~XMeshOpenGLShader() {
 }
 
 bool XMeshOpenGLShader::loadFromXData(const Common::String &filename, XFileData *xobj, Common::Array<MaterialReference> &materialReferences) {
-	auto indexData = _skinMesh->_mesh->_indexData;
-	float *vertexData = _skinMesh->_mesh->_vertexData;
-	uint32 vertexCount = _skinMesh->_mesh->_vertexCount;
-
 	if (XMesh::loadFromXData(filename, xobj, materialReferences)) {
+		auto indexData = _skinMesh->_mesh->_indexData;
+		float *vertexData = _skinMesh->_mesh->_vertexData;
+		uint32 vertexCount = _skinMesh->_mesh->_vertexCount;
+
 		glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
 		glBufferData(GL_ARRAY_BUFFER, 4 * XSkinMeshLoader::kVertexComponentCount * vertexCount, vertexData, GL_DYNAMIC_DRAW);
 




More information about the Scummvm-git-logs mailing list