mirror of
https://github.com/roytam1/basilisk55.git
synced 2026-05-26 15:02:46 +00:00
ported from UXP: Issue #1355 - Make nsTableCellFrame::GetColIndex/GetRowIndex faster (e8bb5560)
This commit is contained in:
@@ -175,23 +175,17 @@ HTMLTableCellAccessible::Table() const
|
||||
uint32_t
|
||||
HTMLTableCellAccessible::ColIdx() const
|
||||
{
|
||||
nsITableCellLayout* cellLayout = GetCellLayout();
|
||||
NS_ENSURE_TRUE(cellLayout, 0);
|
||||
|
||||
int32_t colIdx = 0;
|
||||
cellLayout->GetColIndex(colIdx);
|
||||
return colIdx > 0 ? static_cast<uint32_t>(colIdx) : 0;
|
||||
nsTableCellFrame* cellFrame = GetCellFrame();
|
||||
NS_ENSURE_TRUE(cellFrame, 0);
|
||||
return cellFrame->ColIndex();
|
||||
}
|
||||
|
||||
uint32_t
|
||||
HTMLTableCellAccessible::RowIdx() const
|
||||
{
|
||||
nsITableCellLayout* cellLayout = GetCellLayout();
|
||||
NS_ENSURE_TRUE(cellLayout, 0);
|
||||
|
||||
int32_t rowIdx = 0;
|
||||
cellLayout->GetRowIndex(rowIdx);
|
||||
return rowIdx > 0 ? static_cast<uint32_t>(rowIdx) : 0;
|
||||
nsTableCellFrame* cellFrame = GetCellFrame();
|
||||
NS_ENSURE_TRUE(cellFrame, 0);
|
||||
return cellFrame->RowIndex();
|
||||
}
|
||||
|
||||
uint32_t
|
||||
@@ -285,6 +279,12 @@ HTMLTableCellAccessible::GetCellLayout() const
|
||||
return do_QueryFrame(mContent->GetPrimaryFrame());
|
||||
}
|
||||
|
||||
nsTableCellFrame*
|
||||
HTMLTableCellAccessible::GetCellFrame() const
|
||||
{
|
||||
return do_QueryFrame(mContent->GetPrimaryFrame());
|
||||
}
|
||||
|
||||
nsresult
|
||||
HTMLTableCellAccessible::GetCellIndexes(int32_t& aRowIdx, int32_t& aColIdx) const
|
||||
{
|
||||
@@ -520,11 +520,9 @@ HTMLTableAccessible::SelectedCellCount()
|
||||
if (!cellFrame || !cellFrame->IsSelected())
|
||||
continue;
|
||||
|
||||
int32_t startRow = -1, startCol = -1;
|
||||
cellFrame->GetRowIndex(startRow);
|
||||
cellFrame->GetColIndex(startCol);
|
||||
if (startRow >= 0 && (uint32_t)startRow == rowIdx &&
|
||||
startCol >= 0 && (uint32_t)startCol == colIdx)
|
||||
uint32_t startRow = cellFrame->RowIndex();
|
||||
uint32_t startCol = cellFrame->ColIndex();
|
||||
if (startRow == rowIdx && startCol == colIdx)
|
||||
count++;
|
||||
}
|
||||
}
|
||||
@@ -570,11 +568,9 @@ HTMLTableAccessible::SelectedCells(nsTArray<Accessible*>* aCells)
|
||||
if (!cellFrame || !cellFrame->IsSelected())
|
||||
continue;
|
||||
|
||||
int32_t startCol = -1, startRow = -1;
|
||||
cellFrame->GetRowIndex(startRow);
|
||||
cellFrame->GetColIndex(startCol);
|
||||
if ((startRow >= 0 && (uint32_t)startRow != rowIdx) ||
|
||||
(startCol >= 0 && (uint32_t)startCol != colIdx))
|
||||
uint32_t startRow = cellFrame->RowIndex();
|
||||
uint32_t startCol = cellFrame->ColIndex();
|
||||
if (startRow != rowIdx || startCol != colIdx)
|
||||
continue;
|
||||
|
||||
Accessible* cell = mDoc->GetAccessible(cellFrame->GetContent());
|
||||
@@ -597,11 +593,9 @@ HTMLTableAccessible::SelectedCellIndices(nsTArray<uint32_t>* aCells)
|
||||
if (!cellFrame || !cellFrame->IsSelected())
|
||||
continue;
|
||||
|
||||
int32_t startRow = -1, startCol = -1;
|
||||
cellFrame->GetColIndex(startCol);
|
||||
cellFrame->GetRowIndex(startRow);
|
||||
if (startRow >= 0 && (uint32_t)startRow == rowIdx &&
|
||||
startCol >= 0 && (uint32_t)startCol == colIdx)
|
||||
uint32_t startCol = cellFrame->ColIndex();
|
||||
uint32_t startRow = cellFrame->RowIndex();
|
||||
if (startRow == rowIdx && startCol == colIdx)
|
||||
aCells->AppendElement(CellIndexAt(rowIdx, colIdx));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "TableCellAccessible.h"
|
||||
|
||||
class nsITableCellLayout;
|
||||
class nsTableCellFrame;
|
||||
|
||||
namespace mozilla {
|
||||
namespace a11y {
|
||||
@@ -53,6 +54,11 @@ protected:
|
||||
*/
|
||||
nsITableCellLayout* GetCellLayout() const;
|
||||
|
||||
/**
|
||||
* Return the table cell frame.
|
||||
*/
|
||||
nsTableCellFrame* GetCellFrame() const;
|
||||
|
||||
/**
|
||||
* Return row and column indices of the cell.
|
||||
*/
|
||||
|
||||
@@ -2726,8 +2726,8 @@ HTMLEditor::GetCellDataAt(nsIDOMElement* aTable,
|
||||
}
|
||||
|
||||
*aIsSelected = cellFrame->IsSelected();
|
||||
cellFrame->GetRowIndex(*aStartRowIndex);
|
||||
cellFrame->GetColIndex(*aStartColIndex);
|
||||
*aStartRowIndex = cellFrame->RowIndex();
|
||||
*aStartColIndex = cellFrame->ColIndex();
|
||||
*aRowSpan = cellFrame->GetRowSpan();
|
||||
*aColSpan = cellFrame->GetColSpan();
|
||||
*aActualRowSpan = tableFrame->GetEffectiveRowSpanAt(aRowIndex, aColIndex);
|
||||
|
||||
@@ -2884,16 +2884,15 @@ nsFrameSelection::UnselectCells(nsIContent *aTableContent,
|
||||
nsTableCellFrame* cellFrame =
|
||||
tableFrame->GetCellFrameAt(curRowIndex, curColIndex);
|
||||
|
||||
int32_t origRowIndex, origColIndex;
|
||||
cellFrame->GetRowIndex(origRowIndex);
|
||||
cellFrame->GetColIndex(origColIndex);
|
||||
uint32_t origRowIndex = cellFrame->RowIndex();
|
||||
uint32_t origColIndex = cellFrame->ColIndex();
|
||||
uint32_t actualRowSpan =
|
||||
tableFrame->GetEffectiveRowSpanAt(origRowIndex, origColIndex);
|
||||
uint32_t actualColSpan =
|
||||
tableFrame->GetEffectiveColSpanAt(curRowIndex, curColIndex);
|
||||
if (origRowIndex <= maxRowIndex && maxRowIndex >= 0 &&
|
||||
if (origRowIndex <= static_cast<uint32_t>(maxRowIndex) && maxRowIndex >= 0 &&
|
||||
origRowIndex + actualRowSpan - 1 >= static_cast<uint32_t>(minRowIndex) &&
|
||||
origColIndex <= maxColIndex && maxColIndex >= 0 &&
|
||||
origColIndex <= static_cast<uint32_t>(maxColIndex) && maxColIndex >= 0 &&
|
||||
origColIndex + actualColSpan - 1 >= static_cast<uint32_t>(minColIndex)) {
|
||||
|
||||
mDomSelections[index]->RemoveRange(range);
|
||||
@@ -2927,33 +2926,32 @@ nsFrameSelection::AddCellsToSelection(nsIContent *aTableContent,
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsresult result = NS_OK;
|
||||
int32_t row = aStartRowIndex;
|
||||
uint32_t row = aStartRowIndex;
|
||||
while(true)
|
||||
{
|
||||
int32_t col = aStartColumnIndex;
|
||||
uint32_t col = aStartColumnIndex;
|
||||
while(true)
|
||||
{
|
||||
nsTableCellFrame* cellFrame = tableFrame->GetCellFrameAt(row, col);
|
||||
|
||||
// Skip cells that are spanned from previous locations or are already selected
|
||||
if (cellFrame) {
|
||||
int32_t origRow, origCol;
|
||||
cellFrame->GetRowIndex(origRow);
|
||||
cellFrame->GetColIndex(origCol);
|
||||
uint32_t origRow = cellFrame->RowIndex();
|
||||
uint32_t origCol = cellFrame->ColIndex();
|
||||
if (origRow == row && origCol == col && !cellFrame->IsSelected()) {
|
||||
result = SelectCellElement(cellFrame->GetContent());
|
||||
if (NS_FAILED(result)) return result;
|
||||
}
|
||||
}
|
||||
// Done when we reach end column
|
||||
if (col == aEndColumnIndex) break;
|
||||
if (col == static_cast<uint32_t>(aEndColumnIndex)) break;
|
||||
|
||||
if (aStartColumnIndex < aEndColumnIndex)
|
||||
col ++;
|
||||
else
|
||||
col--;
|
||||
}
|
||||
if (row == aEndRowIndex) break;
|
||||
if (row == static_cast<uint32_t>(aEndRowIndex)) break;
|
||||
|
||||
if (aStartRowIndex < aEndRowIndex)
|
||||
row++;
|
||||
|
||||
@@ -183,10 +183,8 @@ static void
|
||||
ApplyBorderToStyle(const nsMathMLmtdFrame* aFrame,
|
||||
nsStyleBorder& aStyleBorder)
|
||||
{
|
||||
int32_t rowIndex;
|
||||
int32_t columnIndex;
|
||||
aFrame->GetRowIndex(rowIndex);
|
||||
aFrame->GetColIndex(columnIndex);
|
||||
uint32_t rowIndex = aFrame->RowIndex();
|
||||
uint32_t columnIndex = aFrame->ColIndex();
|
||||
|
||||
nscoord borderWidth =
|
||||
nsPresContext::GetBorderWidthForKeyword(NS_STYLE_BORDER_WIDTH_THIN);
|
||||
@@ -201,7 +199,7 @@ ApplyBorderToStyle(const nsMathMLmtdFrame* aFrame,
|
||||
if (rowIndex > 0 && rowLinesList) {
|
||||
// If the row number is greater than the number of provided rowline
|
||||
// values, we simply repeat the last value.
|
||||
int32_t listLength = rowLinesList->Length();
|
||||
uint32_t listLength = rowLinesList->Length();
|
||||
if (rowIndex < listLength) {
|
||||
aStyleBorder.SetBorderStyle(eSideTop,
|
||||
rowLinesList->ElementAt(rowIndex - 1));
|
||||
@@ -216,7 +214,7 @@ ApplyBorderToStyle(const nsMathMLmtdFrame* aFrame,
|
||||
if (columnIndex > 0 && columnLinesList) {
|
||||
// If the column number is greater than the number of provided columline
|
||||
// values, we simply repeat the last value.
|
||||
int32_t listLength = columnLinesList->Length();
|
||||
uint32_t listLength = columnLinesList->Length();
|
||||
if (columnIndex < listLength) {
|
||||
aStyleBorder.SetBorderStyle(eSideLeft,
|
||||
columnLinesList->ElementAt(columnIndex - 1));
|
||||
@@ -1203,12 +1201,11 @@ nsMathMLmtdFrame::GetVerticalAlign() const
|
||||
nsTArray<int8_t>* alignmentList = FindCellProperty(this, RowAlignProperty());
|
||||
|
||||
if (alignmentList) {
|
||||
int32_t rowIndex;
|
||||
GetRowIndex(rowIndex);
|
||||
uint32_t rowIndex = RowIndex();
|
||||
|
||||
// If the row number is greater than the number of provided rowalign values,
|
||||
// we simply repeat the last value.
|
||||
if (rowIndex < (int32_t)alignmentList->Length())
|
||||
if (rowIndex < alignmentList->Length())
|
||||
alignment = alignmentList->ElementAt(rowIndex);
|
||||
else
|
||||
alignment = alignmentList->ElementAt(alignmentList->Length() - 1);
|
||||
@@ -1295,12 +1292,11 @@ nsStyleText* nsMathMLmtdInnerFrame::StyleTextForLineLayout()
|
||||
|
||||
if (alignmentList) {
|
||||
nsMathMLmtdFrame* cellFrame = (nsMathMLmtdFrame*)GetParent();
|
||||
int32_t columnIndex;
|
||||
cellFrame->GetColIndex(columnIndex);
|
||||
uint32_t columnIndex = cellFrame->ColIndex();
|
||||
|
||||
// If the column number is greater than the number of provided columalign
|
||||
// values, we simply repeat the last value.
|
||||
if (columnIndex < (int32_t)alignmentList->Length())
|
||||
if (columnIndex < alignmentList->Length())
|
||||
alignment = alignmentList->ElementAt(columnIndex);
|
||||
else
|
||||
alignment = alignmentList->ElementAt(alignmentList->Length() - 1);
|
||||
|
||||
@@ -2431,9 +2431,8 @@ void nsCellMap::Dump(bool aIsBorderCollapse) const
|
||||
if (cd) {
|
||||
if (cd->IsOrig()) {
|
||||
nsTableCellFrame* cellFrame = cd->GetCellFrame();
|
||||
int32_t cellFrameColIndex;
|
||||
cellFrame->GetColIndex(cellFrameColIndex);
|
||||
printf("C%d,%d=%p(%d) ", rIndex, colIndex, (void*)cellFrame,
|
||||
uint32_t cellFrameColIndex = cellFrame->ColIndex();
|
||||
printf("C%d,%d=%p(%u) ", rIndex, colIndex, (void*)cellFrame,
|
||||
cellFrameColIndex);
|
||||
cellCount++;
|
||||
}
|
||||
@@ -2520,8 +2519,7 @@ nsCellMap::GetCellInfoAt(const nsTableCellMap& aMap,
|
||||
cellFrame = GetCellFrame(aRowX, aColX, *data, true);
|
||||
}
|
||||
if (cellFrame && aColSpan) {
|
||||
int32_t initialColIndex;
|
||||
cellFrame->GetColIndex(initialColIndex);
|
||||
uint32_t initialColIndex = cellFrame->ColIndex();
|
||||
*aColSpan = GetEffectiveColSpan(aMap, aRowX, initialColIndex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
/**
|
||||
* nsITableCellLayout
|
||||
* interface for layout objects that act like table cells.
|
||||
* XXX: This interface should really go away...
|
||||
*
|
||||
* @author sclark
|
||||
*/
|
||||
@@ -26,11 +27,6 @@ public:
|
||||
/** return the mapped cell's row and column indexes (starting at 0 for each) */
|
||||
NS_IMETHOD GetCellIndexes(int32_t &aRowIndex, int32_t &aColIndex)=0;
|
||||
|
||||
/** return the mapped cell's row index (starting at 0 for the first row) */
|
||||
virtual nsresult GetRowIndex(int32_t &aRowIndex) const = 0;
|
||||
|
||||
/** return the mapped cell's column index (starting at 0 for the first column) */
|
||||
virtual nsresult GetColIndex(int32_t &aColIndex) const = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -74,8 +74,7 @@ nsTableCellFrame::Init(nsIContent* aContent,
|
||||
if (aPrevInFlow) {
|
||||
// Set the column index
|
||||
nsTableCellFrame* cellFrame = (nsTableCellFrame*)aPrevInFlow;
|
||||
int32_t colIndex;
|
||||
cellFrame->GetColIndex(colIndex);
|
||||
uint32_t colIndex = cellFrame->ColIndex();
|
||||
SetColIndex(colIndex);
|
||||
}
|
||||
}
|
||||
@@ -168,34 +167,6 @@ nsTableCellFrame::NeedsToObserve(const ReflowInput& aReflowInput)
|
||||
fType == nsGkAtoms::tableWrapperFrame);
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsTableCellFrame::GetRowIndex(int32_t &aRowIndex) const
|
||||
{
|
||||
nsresult result;
|
||||
nsTableRowFrame* row = static_cast<nsTableRowFrame*>(GetParent());
|
||||
if (row) {
|
||||
aRowIndex = row->GetRowIndex();
|
||||
result = NS_OK;
|
||||
}
|
||||
else {
|
||||
aRowIndex = 0;
|
||||
result = NS_ERROR_NOT_INITIALIZED;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsTableCellFrame::GetColIndex(int32_t &aColIndex) const
|
||||
{
|
||||
if (GetPrevInFlow()) {
|
||||
return static_cast<nsTableCellFrame*>(FirstInFlow())->GetColIndex(aColIndex);
|
||||
}
|
||||
else {
|
||||
aColIndex = mColIndex;
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsTableCellFrame::AttributeChanged(int32_t aNameSpaceID,
|
||||
nsIAtom* aAttribute,
|
||||
@@ -224,13 +195,13 @@ nsTableCellFrame::DidSetStyleContext(nsStyleContext* aOldStyleContext)
|
||||
nsTableFrame* tableFrame = GetTableFrame();
|
||||
if (tableFrame->IsBorderCollapse() &&
|
||||
tableFrame->BCRecalcNeeded(aOldStyleContext, StyleContext())) {
|
||||
int32_t colIndex, rowIndex;
|
||||
GetColIndex(colIndex);
|
||||
GetRowIndex(rowIndex);
|
||||
uint32_t colIndex = ColIndex();
|
||||
uint32_t rowIndex = RowIndex();
|
||||
// row span needs to be clamped as we do not create rows in the cellmap
|
||||
// which do not have cells originating in them
|
||||
TableArea damageArea(colIndex, rowIndex, GetColSpan(),
|
||||
std::min(GetRowSpan(), tableFrame->GetRowCount() - rowIndex));
|
||||
std::min(static_cast<uint32_t>(GetRowSpan()),
|
||||
tableFrame->GetRowCount() - rowIndex));
|
||||
tableFrame->AddBCDamageArea(damageArea);
|
||||
}
|
||||
}
|
||||
@@ -819,14 +790,13 @@ CalcUnpaginatedBSize(nsTableCellFrame& aCellFrame,
|
||||
nsTableRowGroupFrame* firstRGInFlow =
|
||||
static_cast<nsTableRowGroupFrame*>(row->GetParent());
|
||||
|
||||
int32_t rowIndex;
|
||||
firstCellInFlow->GetRowIndex(rowIndex);
|
||||
uint32_t rowIndex = firstCellInFlow->RowIndex();
|
||||
int32_t rowSpan = aTableFrame.GetEffectiveRowSpan(*firstCellInFlow);
|
||||
|
||||
nscoord computedBSize = firstTableInFlow->GetRowSpacing(rowIndex,
|
||||
rowIndex + rowSpan - 1);
|
||||
computedBSize -= aBlockDirBorderPadding;
|
||||
int32_t rowX;
|
||||
uint32_t rowX;
|
||||
for (row = firstRGInFlow->GetFirstRow(), rowX = 0; row; row = row->GetNextRow(), rowX++) {
|
||||
if (rowX > rowIndex + rowSpan - 1) {
|
||||
break;
|
||||
@@ -1041,12 +1011,7 @@ nsTableCellFrame::AccessibleType()
|
||||
NS_IMETHODIMP
|
||||
nsTableCellFrame::GetCellIndexes(int32_t &aRowIndex, int32_t &aColIndex)
|
||||
{
|
||||
nsresult res = GetRowIndex(aRowIndex);
|
||||
if (NS_FAILED(res))
|
||||
{
|
||||
aColIndex = 0;
|
||||
return res;
|
||||
}
|
||||
aRowIndex = RowIndex();
|
||||
aColIndex = mColIndex;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -183,7 +183,10 @@ public:
|
||||
NS_IMETHOD GetCellIndexes(int32_t &aRowIndex, int32_t &aColIndex) override;
|
||||
|
||||
/** return the mapped cell's row index (starting at 0 for the first row) */
|
||||
virtual nsresult GetRowIndex(int32_t &aRowIndex) const override;
|
||||
uint32_t RowIndex() const
|
||||
{
|
||||
return static_cast<nsTableRowFrame*>(GetParent())->GetRowIndex();
|
||||
}
|
||||
|
||||
/**
|
||||
* return the cell's specified col span. this is what was specified in the
|
||||
@@ -194,7 +197,16 @@ public:
|
||||
int32_t GetColSpan();
|
||||
|
||||
/** return the cell's column index (starting at 0 for the first column) */
|
||||
virtual nsresult GetColIndex(int32_t &aColIndex) const override;
|
||||
uint32_t ColIndex() const
|
||||
{
|
||||
// NOTE: We copy this from previous continuations, and we don't ever have
|
||||
// dynamic updates when tables split, so our mColIndex always matches our
|
||||
// first continuation's.
|
||||
MOZ_ASSERT(static_cast<nsTableCellFrame*>(FirstContinuation())->mColIndex ==
|
||||
mColIndex,
|
||||
"mColIndex out of sync with first continuation");
|
||||
return mColIndex;
|
||||
}
|
||||
void SetColIndex(int32_t aColIndex);
|
||||
|
||||
/** return the available isize given to this frame during its last reflow */
|
||||
@@ -246,9 +258,9 @@ public:
|
||||
virtual void InvalidateFrame(uint32_t aDisplayItemKey = 0) override;
|
||||
virtual void InvalidateFrameWithRect(const nsRect& aRect, uint32_t aDisplayItemKey = 0) override;
|
||||
virtual void InvalidateFrameForRemoval() override { InvalidateFrameSubtree(); }
|
||||
|
||||
|
||||
bool ShouldPaintBordersAndBackgrounds() const;
|
||||
|
||||
|
||||
bool ShouldPaintBackground(nsDisplayListBuilder* aBuilder);
|
||||
|
||||
protected:
|
||||
|
||||
@@ -376,9 +376,8 @@ nsTableFrame::AttributeChangedFor(nsIFrame* aFrame,
|
||||
nsTableCellMap* cellMap = GetCellMap();
|
||||
if (cellMap) {
|
||||
// for now just remove the cell from the map and reinsert it
|
||||
int32_t rowIndex, colIndex;
|
||||
cellFrame->GetRowIndex(rowIndex);
|
||||
cellFrame->GetColIndex(colIndex);
|
||||
uint32_t rowIndex = cellFrame->RowIndex();
|
||||
uint32_t colIndex = cellFrame->ColIndex();
|
||||
RemoveCell(cellFrame, rowIndex);
|
||||
AutoTArray<nsTableCellFrame*, 1> cells;
|
||||
cells.AppendElement(cellFrame);
|
||||
@@ -455,9 +454,7 @@ nsTableFrame::GetEffectiveRowSpan(int32_t aRowIndex,
|
||||
nsTableCellMap* cellMap = GetCellMap();
|
||||
NS_PRECONDITION (nullptr != cellMap, "bad call, cellMap not yet allocated.");
|
||||
|
||||
int32_t colIndex;
|
||||
aCell.GetColIndex(colIndex);
|
||||
return cellMap->GetEffectiveRowSpan(aRowIndex, colIndex);
|
||||
return cellMap->GetEffectiveRowSpan(aRowIndex, aCell.ColIndex());
|
||||
}
|
||||
|
||||
int32_t
|
||||
@@ -466,9 +463,8 @@ nsTableFrame::GetEffectiveRowSpan(const nsTableCellFrame& aCell,
|
||||
{
|
||||
nsTableCellMap* tableCellMap = GetCellMap(); if (!tableCellMap) ABORT1(1);
|
||||
|
||||
int32_t colIndex, rowIndex;
|
||||
aCell.GetColIndex(colIndex);
|
||||
aCell.GetRowIndex(rowIndex);
|
||||
uint32_t colIndex = aCell.ColIndex();
|
||||
uint32_t rowIndex = aCell.RowIndex();
|
||||
|
||||
if (aCellMap)
|
||||
return aCellMap->GetRowSpan(rowIndex, colIndex, true);
|
||||
@@ -482,9 +478,8 @@ nsTableFrame::GetEffectiveColSpan(const nsTableCellFrame& aCell,
|
||||
{
|
||||
nsTableCellMap* tableCellMap = GetCellMap(); if (!tableCellMap) ABORT1(1);
|
||||
|
||||
int32_t colIndex, rowIndex;
|
||||
aCell.GetColIndex(colIndex);
|
||||
aCell.GetRowIndex(rowIndex);
|
||||
uint32_t colIndex = aCell.ColIndex();
|
||||
uint32_t rowIndex = aCell.RowIndex();
|
||||
|
||||
if (aCellMap)
|
||||
return aCellMap->GetEffectiveColSpan(*tableCellMap, rowIndex, colIndex);
|
||||
@@ -1229,9 +1224,9 @@ PaintRowGroupBackground(nsTableRowGroupFrame* aRowGroup,
|
||||
const nsRect& aDirtyRect)
|
||||
{
|
||||
for (nsTableRowFrame* row = aRowGroup->GetFirstRow(); row; row = row->GetNextRow()) {
|
||||
if (!aDirtyRect.Intersects(nsRect(row->GetNormalPosition(), row->GetSize()))) {
|
||||
continue;
|
||||
}
|
||||
if (!aDirtyRect.Intersects(nsRect(row->GetNormalPosition(), row->GetSize()))) {
|
||||
continue;
|
||||
}
|
||||
PaintRowBackground(row, aFrame, aBuilder, aLists, aDirtyRect, row->GetNormalPosition());
|
||||
}
|
||||
}
|
||||
@@ -1242,7 +1237,7 @@ PaintRowGroupBackgroundByColIdx(nsTableRowGroupFrame* aRowGroup,
|
||||
nsDisplayListBuilder* aBuilder,
|
||||
const nsDisplayListSet& aLists,
|
||||
const nsRect& aDirtyRect,
|
||||
const nsTArray<int32_t>& aColIdx,
|
||||
const nsTArray<uint32_t>& aColIdx,
|
||||
const nsPoint& aOffset)
|
||||
{
|
||||
MOZ_DIAGNOSTIC_ASSERT(!aColIdx.IsEmpty(),
|
||||
@@ -1254,8 +1249,7 @@ PaintRowGroupBackgroundByColIdx(nsTableRowGroupFrame* aRowGroup,
|
||||
}
|
||||
for (nsTableCellFrame* cell = row->GetFirstCell(); cell; cell = cell->GetNextCell()) {
|
||||
|
||||
int32_t curColIdx;
|
||||
cell->GetColIndex(curColIdx);
|
||||
uint32_t curColIdx = cell->ColIndex();
|
||||
if (!aColIdx.Contains(curColIdx)) {
|
||||
if (curColIdx > aColIdx.LastElement()) {
|
||||
// We can just stop looking at this row.
|
||||
@@ -1326,10 +1320,10 @@ nsTableFrame::DisplayGenericTablePart(nsDisplayListBuilder* aBuilder,
|
||||
// Compute background rect by iterating all cell frame.
|
||||
nsTableColGroupFrame* colGroup = static_cast<nsTableColGroupFrame*>(aFrame);
|
||||
// Collecting column index.
|
||||
AutoTArray<int32_t, 1> colIdx;
|
||||
AutoTArray<uint32_t, 1> colIdx;
|
||||
for (nsTableColFrame* col = colGroup->GetFirstColumn(); col; col = col->GetNextCol()) {
|
||||
MOZ_ASSERT(colIdx.IsEmpty() ||
|
||||
col->GetColIndex() > colIdx.LastElement());
|
||||
static_cast<uint32_t>(col->GetColIndex()) > colIdx.LastElement());
|
||||
colIdx.AppendElement(col->GetColIndex());
|
||||
}
|
||||
|
||||
@@ -1349,7 +1343,7 @@ nsTableFrame::DisplayGenericTablePart(nsDisplayListBuilder* aBuilder,
|
||||
} else if (aFrame->GetType() == nsGkAtoms::tableColFrame) {
|
||||
// Compute background rect by iterating all cell frame.
|
||||
nsTableColFrame* col = static_cast<nsTableColFrame*>(aFrame);
|
||||
AutoTArray<int32_t, 1> colIdx;
|
||||
AutoTArray<uint32_t, 1> colIdx;
|
||||
colIdx.AppendElement(col->GetColIndex());
|
||||
|
||||
nsTableFrame* table = col->GetTableFrame();
|
||||
@@ -4001,9 +3995,8 @@ nsTableFrame::DumpRowGroup(nsIFrame* aKidFrame)
|
||||
for (nsIFrame* childFrame : cFrame->PrincipalChildList()) {
|
||||
nsTableCellFrame *cellFrame = do_QueryFrame(childFrame);
|
||||
if (cellFrame) {
|
||||
int32_t colIndex;
|
||||
cellFrame->GetColIndex(colIndex);
|
||||
printf("cell(%d)=%p ", colIndex, static_cast<void*>(childFrame));
|
||||
uint32_t colIndex = cellFrame->ColIndex();
|
||||
printf("cell(%u)=%p ", colIndex, static_cast<void*>(childFrame));
|
||||
}
|
||||
}
|
||||
printf("\n");
|
||||
|
||||
@@ -248,7 +248,7 @@ nsTableRowFrame::InsertFrames(ChildListID aListID,
|
||||
// insert the cells into the cell map
|
||||
int32_t colIndex = -1;
|
||||
if (prevCellFrame) {
|
||||
prevCellFrame->GetColIndex(colIndex);
|
||||
colIndex = prevCellFrame->ColIndex();
|
||||
}
|
||||
tableFrame->InsertCells(cellChildren, GetRowIndex(), colIndex);
|
||||
|
||||
@@ -660,8 +660,7 @@ CalcAvailISize(nsTableFrame& aTableFrame,
|
||||
nsTableCellFrame& aCellFrame)
|
||||
{
|
||||
nscoord cellAvailISize = 0;
|
||||
int32_t colIndex;
|
||||
aCellFrame.GetColIndex(colIndex);
|
||||
uint32_t colIndex = aCellFrame.ColIndex();
|
||||
int32_t colspan = aTableFrame.GetEffectiveColSpan(aCellFrame);
|
||||
NS_ASSERTION(colspan > 0, "effective colspan should be positive");
|
||||
nsTableFrame* fifTable =
|
||||
@@ -800,12 +799,12 @@ nsTableRowFrame::ReflowChildren(nsPresContext* aPresContext,
|
||||
}
|
||||
}
|
||||
|
||||
int32_t cellColIndex;
|
||||
cellFrame->GetColIndex(cellColIndex);
|
||||
uint32_t cellColIndex = cellFrame->ColIndex();
|
||||
cellColSpan = aTableFrame.GetEffectiveColSpan(*cellFrame);
|
||||
|
||||
// If the adjacent cell is in a prior row (because of a rowspan) add in the space
|
||||
if (prevColIndex != (cellColIndex - 1)) {
|
||||
// NOTE: prevColIndex can be -1 here.
|
||||
if (prevColIndex != (static_cast<int32_t>(cellColIndex) - 1)) {
|
||||
iCoord += GetSpaceBetween(prevColIndex, cellColIndex, cellColSpan, aTableFrame,
|
||||
false);
|
||||
}
|
||||
@@ -1173,8 +1172,7 @@ nsTableRowFrame::CollapseRowIfNecessary(nscoord aRowOffset,
|
||||
shift = rowRect.BSize(wm);
|
||||
nsTableCellFrame* cellFrame = GetFirstCell();
|
||||
if (cellFrame) {
|
||||
int32_t rowIndex;
|
||||
cellFrame->GetRowIndex(rowIndex);
|
||||
uint32_t rowIndex = cellFrame->RowIndex();
|
||||
shift += tableFrame->GetRowSpacing(rowIndex);
|
||||
while (cellFrame) {
|
||||
LogicalRect cRect = cellFrame->GetLogicalRect(wm, containerSize);
|
||||
@@ -1205,13 +1203,13 @@ nsTableRowFrame::CollapseRowIfNecessary(nscoord aRowOffset,
|
||||
for (nsIFrame* kidFrame : mFrames) {
|
||||
nsTableCellFrame *cellFrame = do_QueryFrame(kidFrame);
|
||||
if (cellFrame) {
|
||||
int32_t cellColIndex;
|
||||
cellFrame->GetColIndex(cellColIndex);
|
||||
uint32_t cellColIndex = cellFrame->ColIndex();
|
||||
int32_t cellColSpan = tableFrame->GetEffectiveColSpan(*cellFrame);
|
||||
|
||||
// If the adjacent cell is in a prior row (because of a rowspan) add in
|
||||
// the space
|
||||
if (prevColIndex != (cellColIndex - 1)) {
|
||||
// NOTE: prevColIndex can be -1 here.
|
||||
if (prevColIndex != (static_cast<int32_t>(cellColIndex) - 1)) {
|
||||
iPos += GetSpaceBetween(prevColIndex, cellColIndex, cellColSpan,
|
||||
*tableFrame, true);
|
||||
}
|
||||
@@ -1324,9 +1322,9 @@ nsTableRowFrame::InsertCellFrame(nsTableCellFrame* aFrame,
|
||||
for (nsIFrame* child : mFrames) {
|
||||
nsTableCellFrame *cellFrame = do_QueryFrame(child);
|
||||
if (cellFrame) {
|
||||
int32_t colIndex;
|
||||
cellFrame->GetColIndex(colIndex);
|
||||
if (colIndex < aColIndex) {
|
||||
uint32_t colIndex = cellFrame->ColIndex();
|
||||
// Can aColIndex be -1 here? Let's assume it can for now.
|
||||
if (static_cast<int32_t>(colIndex) < aColIndex) {
|
||||
priorCell = cellFrame;
|
||||
}
|
||||
else break;
|
||||
|
||||
@@ -137,8 +137,7 @@ nsTableRowGroupFrame::InitRepeatedFrame(nsTableRowGroupFrame* aHeaderFooterFrame
|
||||
while (copyCellFrame && originalCellFrame) {
|
||||
NS_ASSERTION(originalCellFrame->GetContent() == copyCellFrame->GetContent(),
|
||||
"cell frames have different content");
|
||||
int32_t colIndex;
|
||||
originalCellFrame->GetColIndex(colIndex);
|
||||
uint32_t colIndex = originalCellFrame->ColIndex();
|
||||
copyCellFrame->SetColIndex(colIndex);
|
||||
|
||||
// Move to the next cell frame
|
||||
@@ -998,8 +997,7 @@ nsTableRowGroupFrame::SplitSpanningCells(nsPresContext& aPresContext,
|
||||
nsTableCellFrame* contCell = static_cast<nsTableCellFrame*>(
|
||||
aPresContext.PresShell()->FrameConstructor()->
|
||||
CreateContinuingFrame(&aPresContext, cell, &aLastRow));
|
||||
int32_t colIndex;
|
||||
cell->GetColIndex(colIndex);
|
||||
uint32_t colIndex = cell->ColIndex();
|
||||
aContRow->InsertCellFrame(contCell, colIndex);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user