зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #16202 - stylo: Bug 1352067 - Initialize StyleAnimationValue with zeros (from BorisChiou:stylo/animation/initial_computed_keyframes); r=emilio
AnimationValue::mGecko and AnimationValue::mServo are mutually exclusive, so we have to make sure mGecko.IsNull() returns reasonable value, or we will got assertions. Hence, we should initialize it during constructing StyleAnimationValue from Servo side. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix Bug 1352067. - [X] These changes do not require tests because there are enough tests in Gecko Source-Repo: https://github.com/servo/servo Source-Revision: a70e4ac5b25251ca1c05e8eced12f2aefea4410d --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : bc8e26879318bc65845aaf0679d45f669c3d3713
This commit is contained in:
Родитель
a39b0b03c5
Коммит
d9d214de1d
|
@ -1551,6 +1551,7 @@ pub extern "C" fn Servo_GetComputedKeyframeValues(keyframes: RawGeckoKeyframeLis
|
|||
raw_data: RawServoStyleSetBorrowed,
|
||||
computed_keyframes: RawGeckoComputedKeyframeValuesListBorrowedMut)
|
||||
{
|
||||
use std::mem;
|
||||
use style::properties::LonghandIdSet;
|
||||
use style::properties::declaration_block::Importance;
|
||||
use style::values::computed::Context;
|
||||
|
@ -1614,6 +1615,10 @@ pub extern "C" fn Servo_GetComputedKeyframeValues(keyframes: RawGeckoKeyframeLis
|
|||
unsafe { animation_values.set_len((i + 1) as u32) };
|
||||
seen.set_transition_property_bit(&anim.0);
|
||||
animation_values[i].mProperty = anim.0.into();
|
||||
// We only make sure we have enough space for this variable,
|
||||
// but didn't construct a default value for StyleAnimationValue,
|
||||
// so we should zero it to avoid getting undefined behaviors.
|
||||
animation_values[i].mValue.mGecko = unsafe { mem::zeroed() };
|
||||
animation_values[i].mValue.mServo.set_arc_leaky(Arc::new(anim.1));
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче