mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-04 06:48:38 +09:00
Issue #1386 - Devirtualize GetRowSpan/GetColSpan
It's at ~1.5% on the perf log for the Netflix use case, which seems a bit too much.
This commit is contained in:
parent
2c6ab7ccd9
commit
a05c6a317b
7 changed files with 41 additions and 64 deletions
|
|
@ -711,16 +711,18 @@ nsTableCellFrame::GetCellBaseline() const
|
|||
borderPadding;
|
||||
}
|
||||
|
||||
int32_t nsTableCellFrame::GetRowSpan()
|
||||
int32_t
|
||||
nsTableCellFrame::GetRowSpan()
|
||||
{
|
||||
int32_t rowSpan=1;
|
||||
nsGenericHTMLElement *hc = nsGenericHTMLElement::FromContent(mContent);
|
||||
|
||||
// Don't look at the content's rowspan if we're a pseudo cell
|
||||
if (hc && !StyleContext()->GetPseudo()) {
|
||||
const nsAttrValue* attr = hc->GetParsedAttr(nsGkAtoms::rowspan);
|
||||
if (!StyleContext()->GetPseudo()) {
|
||||
dom::Element* elem = mContent->AsElement();
|
||||
const nsAttrValue* attr = elem->GetParsedAttr(nsGkAtoms::rowspan);
|
||||
// Note that we don't need to check the tag name, because only table cells
|
||||
// and table headers parse the "rowspan" attribute into an integer.
|
||||
// (including MathML <mtd>) and table headers parse the "rowspan" attribute
|
||||
// into an integer.
|
||||
if (attr && attr->Type() == nsAttrValue::eInteger) {
|
||||
rowSpan = attr->GetIntegerValue();
|
||||
}
|
||||
|
|
@ -728,16 +730,20 @@ int32_t nsTableCellFrame::GetRowSpan()
|
|||
return rowSpan;
|
||||
}
|
||||
|
||||
int32_t nsTableCellFrame::GetColSpan()
|
||||
int32_t
|
||||
nsTableCellFrame::GetColSpan()
|
||||
{
|
||||
int32_t colSpan=1;
|
||||
nsGenericHTMLElement *hc = nsGenericHTMLElement::FromContent(mContent);
|
||||
|
||||
// Don't look at the content's colspan if we're a pseudo cell
|
||||
if (hc && !StyleContext()->GetPseudo()) {
|
||||
const nsAttrValue* attr = hc->GetParsedAttr(nsGkAtoms::colspan);
|
||||
if (!StyleContext()->GetPseudo()) {
|
||||
dom::Element* elem = mContent->AsElement();
|
||||
const nsAttrValue* attr = elem->GetParsedAttr(
|
||||
MOZ_UNLIKELY(elem->IsMathMLElement()) ? nsGkAtoms::columnspan_
|
||||
: nsGkAtoms::colspan);
|
||||
// Note that we don't need to check the tag name, because only table cells
|
||||
// and table headers parse the "colspan" attribute into an integer.
|
||||
// (including MathML <mtd>) and table headers parse the "colspan" attribute
|
||||
// into an integer.
|
||||
if (attr && attr->Type() == nsAttrValue::eInteger) {
|
||||
colSpan = attr->GetIntegerValue();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue