浏览代码

Merge pull request #62784 from Chaosus/fix_mesh_crash

Prevent possible crash when creating or deleting a mesh with armature
Rémi Verschelde 3 年之前
父节点
当前提交
f60cb2931c
共有 2 个文件被更改,包括 4 次插入0 次删除
  1. 2 0
      drivers/gles3/storage/mesh_storage.cpp
  2. 2 0
      servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp

+ 2 - 0
drivers/gles3/storage/mesh_storage.cpp

@@ -64,6 +64,8 @@ void MeshStorage::mesh_free(RID p_rid) {
 	mesh_clear(p_rid);
 	mesh_set_shadow_mesh(p_rid, RID());
 	Mesh *mesh = mesh_owner.get_or_null(p_rid);
+	ERR_FAIL_COND(!mesh);
+
 	mesh->dependency.deleted_notify(p_rid);
 	if (mesh->instances.size()) {
 		ERR_PRINT("deleting mesh with active instances");

+ 2 - 0
servers/rendering/renderer_rd/storage_rd/mesh_storage.cpp

@@ -210,6 +210,8 @@ void MeshStorage::mesh_free(RID p_rid) {
 	mesh_clear(p_rid);
 	mesh_set_shadow_mesh(p_rid, RID());
 	Mesh *mesh = mesh_owner.get_or_null(p_rid);
+	ERR_FAIL_COND(!mesh);
+
 	mesh->dependency.deleted_notify(p_rid);
 	if (mesh->instances.size()) {
 		ERR_PRINT("deleting mesh with active instances");