Put computed values into AnimationValueMap instead of hashtable in gecko.

Before this patch, we store each computed values in a hashtable,
nsRefPtrHashtable<nsUint32HashKey, RawServoAnimationValue>, for all
KeyframeEffectReadOnly on an element, and convert the ServoAnimationValues of
the hashtable into an nsTArray<ServoAnimationValue*> and then convert
the ServoAnimationValues of the nsTArray into PropertyDeclarationBlock
in rust.  This way was really inefficient.
In this patch, we store the computed values into AnimationValueMap and
convert all AnimationValue in the map into PropertyDeclarationBlock
after EffectCompositor::GetAnimationRule.
This commit is contained in:
Hiroyuki Ikezoe 2017-03-17 12:31:38 +09:00
parent c0baac4194
commit b210813124
5 changed files with 41 additions and 12 deletions

View file

@ -8214,9 +8214,6 @@ pub mod root {
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct ServoAnimationRule([u8; 0]);
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct AnimationPerformanceWarning([u8; 0]);
pub type CSSPseudoClassTypeBase = u8;
#[repr(u8)]