diff options
author | Hans Goudey <h.goudey@me.com> | 2021-07-07 05:09:01 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-07-07 05:09:01 +0300 |
commit | cd38daeff411941e2de3bcd7dd1ddcd2b8a10645 (patch) | |
tree | 40a2da734b88be1f82628b2cf366510c4f81c3cf /source/blender/blenkernel/intern | |
parent | 0521272ab3817b599dec64639d081e04c236bddd (diff) |
Fix T89702: Curve to points node assert on single point spline
This function could be refactored slightly if we assumed the input was
always sorted, but a special for a single point input is also fine.
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/spline_base.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/spline_base.cc b/source/blender/blenkernel/intern/spline_base.cc index aa0d95d4d61..6234cdf87e2 100644 --- a/source/blender/blenkernel/intern/spline_base.cc +++ b/source/blender/blenkernel/intern/spline_base.cc @@ -512,6 +512,10 @@ void Spline::sample_with_index_factors(const GVArray &src, using T = decltype(dummy); const GVArray_Typed<T> src_typed = src.typed<T>(); MutableSpan<T> dst_typed = dst.typed<T>(); + if (src.size() == 1) { + dst_typed.fill(src_typed[0]); + return; + } blender::threading::parallel_for(dst_typed.index_range(), 1024, [&](IndexRange range) { for (const int i : range) { const LookupResult interp = this->lookup_data_from_index_factor(index_factors[i]); |