summaryrefslogtreecommitdiffstats
path: root/layout/tables/nsTableCellFrame.h
diff options
context:
space:
mode:
authorwin7-7 <win7-7@users.noreply.github.com>2020-01-29 11:14:34 +0200
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-04-14 12:19:39 +0200
commitefd88ee9995dca701786cd13204d57899335f569 (patch)
tree0f1d6c8067aa2607176cc263bda9eb2b1c4315ce /layout/tables/nsTableCellFrame.h
parent9a74d53315e569171b4c4efa4ed5b278aa63f83c (diff)
downloadUXP-efd88ee9995dca701786cd13204d57899335f569.tar
UXP-efd88ee9995dca701786cd13204d57899335f569.tar.gz
UXP-efd88ee9995dca701786cd13204d57899335f569.tar.lz
UXP-efd88ee9995dca701786cd13204d57899335f569.tar.xz
UXP-efd88ee9995dca701786cd13204d57899335f569.zip
Issue #1355 - Speed up the traversal of a table row frame's child cells
Speed up getting the first cellframe in a row and the next cellframe after the given one
Diffstat (limited to 'layout/tables/nsTableCellFrame.h')
-rw-r--r--layout/tables/nsTableCellFrame.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/layout/tables/nsTableCellFrame.h b/layout/tables/nsTableCellFrame.h
index 5f87c5f6d..d8debe993 100644
--- a/layout/tables/nsTableCellFrame.h
+++ b/layout/tables/nsTableCellFrame.h
@@ -215,7 +215,17 @@ public:
bool HasPctOverBSize();
void SetHasPctOverBSize(bool aValue);
- nsTableCellFrame* GetNextCell() const;
+ nsTableCellFrame* GetNextCell() const
+ {
+ nsIFrame* sibling = GetNextSibling();
+#ifdef DEBUG
+ if (sibling) {
+ nsTableCellFrame* cellFrame = do_QueryFrame(sibling);
+ MOZ_ASSERT(cellFrame, "How do we have a non-cell sibling?");
+ }
+#endif // DEBUG
+ return static_cast<nsTableCellFrame*>(sibling);
+ }
virtual LogicalMargin GetBorderWidth(WritingMode aWM) const;
@@ -350,4 +360,17 @@ private:
BCPixelSize mIStartBorder;
};
+// Implemented here because that's a sane-ish way to make the includes work out.
+inline nsTableCellFrame* nsTableRowFrame::GetFirstCell() const
+{
+ nsIFrame* firstChild = mFrames.FirstChild();
+#ifdef DEBUG
+ if (firstChild) {
+ nsTableCellFrame* cellFrame = do_QueryFrame(firstChild);
+ MOZ_ASSERT(cellFrame, "How do we have a non-cell sibling?");
+ }
+#endif // DEBUG
+ return static_cast<nsTableCellFrame*>(firstChild);
+}
+
#endif