fix elastic interpolator crash with period 0 fixes #6422 - it prevents users from setting the period to 0 - if period is 0, it defaults to the original value (0.5) - it aligns the cpp initial value to match the dart initial value (0.5f) Diffs= 584a1c28e fix elastic interpolator crash with period 0 (#6450) Co-authored-by: hernan <hernan@rive.app>
diff --git a/.rive_head b/.rive_head index 3b784ab..b2dba0e 100644 --- a/.rive_head +++ b/.rive_head
@@ -1 +1 @@ -af2f2d632619ec298e58ec54c4a9b6a66f9d27dc +584a1c28ed6ec51aecde5a9983f366a26ba77280
diff --git a/src/animation/elastic_interpolator.cpp b/src/animation/elastic_interpolator.cpp index bbf3907..39a2b19 100644 --- a/src/animation/elastic_interpolator.cpp +++ b/src/animation/elastic_interpolator.cpp
@@ -2,11 +2,11 @@ using namespace rive; -ElasticInterpolator::ElasticInterpolator() : m_elastic(1.0f, 1.0f) {} +ElasticInterpolator::ElasticInterpolator() : m_elastic(1.0f, 0.5f) {} StatusCode ElasticInterpolator::onAddedDirty(CoreContext* context) { - m_elastic = ElasticEase(amplitude(), period()); + m_elastic = ElasticEase(amplitude(), period() == 0.0f ? 0.5f : period()); return StatusCode::Ok; }