1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-17 14:11:06 +00:00

Prevent MeshDataTool from crashing due to invalid bones/weights arrays

This commit is contained in:
Yuri Sizov
2021-11-02 16:52:36 +03:00
parent 44a532e99e
commit ec15227be8

View File

@@ -412,6 +412,7 @@ Vector<int> MeshDataTool::get_vertex_bones(int p_idx) const {
} }
void MeshDataTool::set_vertex_bones(int p_idx, const Vector<int> &p_bones) { void MeshDataTool::set_vertex_bones(int p_idx, const Vector<int> &p_bones) {
ERR_FAIL_INDEX(p_idx, vertices.size()); ERR_FAIL_INDEX(p_idx, vertices.size());
ERR_FAIL_COND(p_bones.size() != 4);
vertices.write[p_idx].bones = p_bones; vertices.write[p_idx].bones = p_bones;
format |= Mesh::ARRAY_FORMAT_BONES; format |= Mesh::ARRAY_FORMAT_BONES;
} }
@@ -422,6 +423,7 @@ Vector<float> MeshDataTool::get_vertex_weights(int p_idx) const {
} }
void MeshDataTool::set_vertex_weights(int p_idx, const Vector<float> &p_weights) { void MeshDataTool::set_vertex_weights(int p_idx, const Vector<float> &p_weights) {
ERR_FAIL_INDEX(p_idx, vertices.size()); ERR_FAIL_INDEX(p_idx, vertices.size());
ERR_FAIL_COND(p_weights.size() != 4);
vertices.write[p_idx].weights = p_weights; vertices.write[p_idx].weights = p_weights;
format |= Mesh::ARRAY_FORMAT_WEIGHTS; format |= Mesh::ARRAY_FORMAT_WEIGHTS;
} }