diff --git a/mozilla/layout/html/table/src/nsTableFrame.cpp b/mozilla/layout/html/table/src/nsTableFrame.cpp index 70ff687c4a0..bbf63e2567b 100644 --- a/mozilla/layout/html/table/src/nsTableFrame.cpp +++ b/mozilla/layout/html/table/src/nsTableFrame.cpp @@ -149,6 +149,10 @@ public: eColWidthType_Proportional = 3 // (int) value has proportional meaning }; +#ifdef DEBUG + void SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const; +#endif + private: PRInt32 mColCounts [4]; PRInt32 *mColIndexes[4]; @@ -252,6 +256,23 @@ void ColumnInfoCache::GetColumnsByType(const nsStyleUnit aType, } } +#ifdef DEBUG +void ColumnInfoCache::SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const +{ + NS_PRECONDITION(aResult, "null OUT parameter pointer"); + PRUint32 sum = sizeof(*this); + + // Now add in the space talen up by the arrays + for (int i = 0; i < 4; i++) { + if (mColIndexes[i]) { + sum += mNumColumns * sizeof(PRInt32); + } + } + + *aResult = sum; +} +#endif + NS_IMETHODIMP nsTableFrame::GetFrameType(nsIAtom** aType) const { @@ -5509,9 +5530,11 @@ nsTableFrame::SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const // Add in the amount of space for the column width array sum += mColumnWidthsLength * sizeof(PRInt32); - // And the column info cache + // And in size of column info cache if (mColCache) { - sum += sizeof(*mColCache); + PRUint32 colCacheSize; + mColCache->SizeOf(aHandler, &colCacheSize); + aHandler->AddSize(nsLayoutAtoms::tableColCache, colCacheSize); } // Add in size of cell map diff --git a/mozilla/layout/tables/nsTableFrame.cpp b/mozilla/layout/tables/nsTableFrame.cpp index 70ff687c4a0..bbf63e2567b 100644 --- a/mozilla/layout/tables/nsTableFrame.cpp +++ b/mozilla/layout/tables/nsTableFrame.cpp @@ -149,6 +149,10 @@ public: eColWidthType_Proportional = 3 // (int) value has proportional meaning }; +#ifdef DEBUG + void SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const; +#endif + private: PRInt32 mColCounts [4]; PRInt32 *mColIndexes[4]; @@ -252,6 +256,23 @@ void ColumnInfoCache::GetColumnsByType(const nsStyleUnit aType, } } +#ifdef DEBUG +void ColumnInfoCache::SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const +{ + NS_PRECONDITION(aResult, "null OUT parameter pointer"); + PRUint32 sum = sizeof(*this); + + // Now add in the space talen up by the arrays + for (int i = 0; i < 4; i++) { + if (mColIndexes[i]) { + sum += mNumColumns * sizeof(PRInt32); + } + } + + *aResult = sum; +} +#endif + NS_IMETHODIMP nsTableFrame::GetFrameType(nsIAtom** aType) const { @@ -5509,9 +5530,11 @@ nsTableFrame::SizeOf(nsISizeOfHandler* aHandler, PRUint32* aResult) const // Add in the amount of space for the column width array sum += mColumnWidthsLength * sizeof(PRInt32); - // And the column info cache + // And in size of column info cache if (mColCache) { - sum += sizeof(*mColCache); + PRUint32 colCacheSize; + mColCache->SizeOf(aHandler, &colCacheSize); + aHandler->AddSize(nsLayoutAtoms::tableColCache, colCacheSize); } // Add in size of cell map