Convert between {Accumulate, Interpolate}Matrix and the related gecko type.

We convert ComputedOperation::{Accumulate, Interpolate}Matrix into gecko type
not on the main thread, so we cannot use nsCSSValueList_heap (which is not
thread safe so we cannot create it and destroy it on different threads).
Therefore, we use nsCSSValueSharedList to represent the cloned
from_list/to_list. In this patch, we also implement the reversing way,
i.e. Convert eCSSKeyword_{accumulate, interpolate}matrix into
{Accumulate, Interpolate}Matrix.
This commit is contained in:
Boris Chiou 2017-06-07 11:19:59 +08:00
parent 8a69132de0
commit 1a3845b719
3 changed files with 90 additions and 20 deletions

View file

@ -1310,6 +1310,10 @@ extern "C" {
pub fn Gecko_CSSValue_SetPairList(css_value: nsCSSValueBorrowedMut,
len: u32);
}
extern "C" {
pub fn Gecko_CSSValue_InitSharedList(css_value: nsCSSValueBorrowedMut,
len: u32);
}
extern "C" {
pub fn Gecko_CSSValue_Drop(css_value: nsCSSValueBorrowedMut);
}