Closed Bug 1468294 Opened 6 years ago Closed 6 years ago

panicked at 'animate should only be used for interpolating or accumulating transforms'

Categories

(Core :: DOM: Animation, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla62
Tracking Status
firefox-esr52 --- unaffected
firefox-esr60 --- unaffected
firefox60 --- unaffected
firefox61 --- unaffected
firefox62 --- fixed

People

(Reporter: truber, Assigned: hiro)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, regression, testcase)

Attachments

(2 files)

Attached file testcase.html
The attached testcase causes a panic in m-c 20180611-62ab31ea0ec7

thread '<unnamed>' panicked at 'animate should only be used for interpolating or accumulating transforms', style-2f3f2642796fb364/out/properties.rs:88389:9
...
#5: std::panicking::begin_panic
        at src/libstd/panicking.rs:538
#6: _<style..properties..animated_properties..Quaternion as style..values..animated..Animate>::animate
        at /out/properties.rs:88389
#7: _<style..properties..animated_properties..MatrixDecomposed3D as style..values..animated..Animate>::animate
        at /out/properties.rs:88341
#8: style::properties::animated_properties::_<impl style..values..animated..Animate for style..values..generics..transform..Matrix3D<f32>>::animate
        at /out/properties.rs:88127
#9: style::properties::animated_properties::_<impl style..values..animated..Animate for style..values..generics..transform..TransformOperation<style..values..computed..angle..Angle, f32, style..values..computed..length..CSSPixelLeng
th, i32, style..values..computed..length..LengthOrPercentage>>::animate
        at /out/properties.rs:87711
#10: _<&'a mut I as core..iter..iterator..Iterator>::next
        at /out/properties.rs:89261
#11: _<alloc..vec..Vec<T> as alloc..vec..SpecExtend<T, I>>::from_iter
        at src/liballoc/vec.rs:1801
#12: _<style..properties..animated_properties..AnimationValue as style..values..animated..Animate>::animate
        at src/liballoc/vec.rs:1713
#13: geckoservo::glue::compose_animation_segment
        at servo/ports/geckolib/glue.rs:591
#14: geckoservo::glue::Servo_ComposeAnimationSegment
        at servo/ports/geckolib/glue.rs:608
#15: mozilla::layers::AnimationHelper::SampleAnimationForEachNode(mozilla::TimeStamp, mozilla::TimeStamp, nsTArray<mozilla::layers::Animation>&, nsTArray<mozilla::layers::AnimData>&, RefPtr<RawServoAnimationValue>&, mozilla::layers:
:AnimatedValue const*)
        at gfx/layers/AnimationHelper.cpp:319
Flags: in-testsuite?
Comment on attachment 8984997 [details]
Bug 1468294 - Double f64::EPSILON for calculation error.

https://reviewboard.mozilla.org/r/250732/#review257004

::: servo/components/style/properties/helpers/animated_properties.mako.rs:1741
(Diff revision 1)
>      fn animate(&self, other: &Self, procedure: Procedure) -> Result<Self, ()> {
>          use std::f64;
>  
>          let (this_weight, other_weight) = procedure.weights();
>          debug_assert!(
> -            (this_weight + other_weight - 1.0f64).abs() <= f64::EPSILON ||
> +            (this_weight + other_weight - 1.0f64).abs() <= f64::EPSILON * 2.0 ||

We should a comment to the code to explain why we are doubling the epsilon.
Attachment #8984997 - Flags: review?(bbirtles) → review+
Pushed by hikezoe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ee2f1c495bc1
Double f64::EPSILON for calculation error. r=birtles
https://hg.mozilla.org/mozilla-central/rev/ee2f1c495bc1
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: