Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-10-29 02:53:39 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-10-29 02:53:39 +0300
commit8eb10de739f6225182f87b26a1f611d7653ce6f4 (patch)
treeb36c356b4e6ca5b034077d6beb4a695fab14458f
parentadf82fe943bc4ad600754d7172deeca319e73bff (diff)
parentb43077ba3a2991096aa6484fcccd94d68998fb11 (diff)
Merge branch 'blender-v3.0-release'
-rw-r--r--source/blender/blenkernel/intern/spline_base.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/spline_base.cc b/source/blender/blenkernel/intern/spline_base.cc
index 663c1951ba3..bbe4e0aab7b 100644
--- a/source/blender/blenkernel/intern/spline_base.cc
+++ b/source/blender/blenkernel/intern/spline_base.cc
@@ -486,6 +486,12 @@ Array<float> Spline::sample_uniform_index_factors(const int samples_size) const
prev_length = length;
}
+ /* Zero lengths or float innacuracies can cause invalid values, or simply
+ * skip some, so set the values that weren't completed in the main loop. */
+ for (const int i : IndexRange(i_sample, samples_size - i_sample)) {
+ samples[i] = float(samples_size);
+ }
+
if (!is_cyclic_) {
/* In rare cases this can prevent overflow of the stored index. */
samples.last() = lengths.size();