[Bf-blender-cvs] [5b0cb5bbbe7] soc-2020-io-performance: Fix tessellate crash due to wrong Vector size.
Ankit Meel
noreply at git.blender.org
Fri Aug 21 12:46:03 CEST 2020
Commit: 5b0cb5bbbe78ea308390e6e33fd9ea80ca524a4f
Author: Ankit Meel
Date: Fri Aug 21 15:46:44 2020 +0530
Branches: soc-2020-io-performance
https://developer.blender.org/rB5b0cb5bbbe78ea308390e6e33fd9ea80ca524a4f
Fix tessellate crash due to wrong Vector size.
Also fix crash due to out of bound vertex indices.
===================================================================
M source/blender/io/wavefront_obj/intern/mesh_utils.cc
===================================================================
diff --git a/source/blender/io/wavefront_obj/intern/mesh_utils.cc b/source/blender/io/wavefront_obj/intern/mesh_utils.cc
index 5176553d873..52bbd56927a 100644
--- a/source/blender/io/wavefront_obj/intern/mesh_utils.cc
+++ b/source/blender/io/wavefront_obj/intern/mesh_utils.cc
@@ -133,13 +133,13 @@ Vector<Vector<int>> ngon_tessellate(Span<float3> vertex_coords, Span<int> face_v
Vector<vert_treplet> verts;
verts.reserve(face_vertex_indices.size());
- for (int i = 0; i < verts.size(); i++) {
- verts.append_unchecked({vertex_coords[i], i});
+ for (int i = 0; i < face_vertex_indices.size(); i++) {
+ verts.append({vertex_coords[face_vertex_indices[i]], i});
}
Vector<Array<int, 2>> edges;
for (int i = 0; i < face_vertex_indices.size(); i++) {
- edges[i] = {i, i - 1};
+ edges.append({i, i - 1});
}
edges[0] = {0, static_cast<int>(face_vertex_indices.size() - 1)};
@@ -250,7 +250,7 @@ Vector<Vector<int>> ngon_tessellate(Span<float3> vertex_coords, Span<int> face_v
if (fill_indices.is_empty()) {
std::cerr << "Warning: could not scanfill, fallback on triangle fan" << std::endl;
- for (int i = 0; i < face_vertex_indices.size(); i++) {
+ for (int i = 2; i < face_vertex_indices.size(); i++) {
fill_indices.append({0, i - 1, i});
}
}
More information about the Bf-blender-cvs
mailing list