diff --git a/src/rmodels.c b/src/rmodels.c index 04bba1971..3ee3a4708 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -1624,7 +1624,7 @@ void UnloadMesh(Mesh mesh) // Unload rlgl mesh vboId data rlUnloadVertexArray(mesh.vaoId); - for (int i = 0; i < MAX_MESH_VERTEX_BUFFERS; i++) rlUnloadVertexBuffer(mesh.vboId[i]); + if (mesh.vboId != NULL) for (int i = 0; i < MAX_MESH_VERTEX_BUFFERS; i++) rlUnloadVertexBuffer(mesh.vboId[i]); RL_FREE(mesh.vboId); RL_FREE(mesh.vertices); @@ -1787,9 +1787,12 @@ void UnloadMaterial(Material material) if (material.shader.id != rlGetShaderIdDefault()) UnloadShader(material.shader); // Unload loaded texture maps (avoid unloading default texture, managed by raylib) - for (int i = 0; i < MAX_MATERIAL_MAPS; i++) + if (material.maps != NULL) { - if (material.maps[i].texture.id != rlGetTextureIdDefault()) rlUnloadTexture(material.maps[i].texture.id); + for (int i = 0; i < MAX_MATERIAL_MAPS; i++) + { + if (material.maps[i].texture.id != rlGetTextureIdDefault()) rlUnloadTexture(material.maps[i].texture.id); + } } RL_FREE(material.maps);