From 415a94a6de064694c0d1497b914ac7cee0534166 Mon Sep 17 00:00:00 2001 From: Cameron McCormack Date: Tue, 18 Feb 2014 13:32:06 +1100 Subject: [PATCH] Bug 961364 - Clear the column type bits before setting them in nsTableCol{,Group}Frame::SetColType. r=dbaron --- layout/tables/nsTableColFrame.cpp | 3 ++- layout/tables/nsTableColGroupFrame.cpp | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/layout/tables/nsTableColFrame.cpp b/layout/tables/nsTableColFrame.cpp index 82135a991126..da50d5d438c0 100644 --- a/layout/tables/nsTableColFrame.cpp +++ b/layout/tables/nsTableColFrame.cpp @@ -47,7 +47,8 @@ nsTableColFrame::SetColType(nsTableColType aType) GetPrevContinuation()->GetNextSibling() == this), "spanned content cols must be continuations"); uint32_t type = aType - eColContent; - mState |= nsFrameState(type << COL_TYPE_OFFSET); + RemoveStateBits(COL_TYPE_BITS); + AddStateBits(nsFrameState(type << COL_TYPE_OFFSET)); } /* virtual */ void diff --git a/layout/tables/nsTableColGroupFrame.cpp b/layout/tables/nsTableColGroupFrame.cpp index 51e312dee47a..0dfa7781805b 100644 --- a/layout/tables/nsTableColGroupFrame.cpp +++ b/layout/tables/nsTableColGroupFrame.cpp @@ -26,8 +26,12 @@ nsTableColGroupFrame::GetColType() const void nsTableColGroupFrame::SetColType(nsTableColGroupType aType) { + NS_ASSERTION(GetColType() == eColGroupContent, + "should only call nsTableColGroupFrame::SetColType with aType " + "!= eColGroupContent once"); uint32_t type = aType - eColGroupContent; - mState |= nsFrameState(type << COL_GROUP_TYPE_OFFSET); + RemoveStateBits(COL_GROUP_TYPE_BITS); + AddStateBits(nsFrameState(type << COL_GROUP_TYPE_OFFSET)); } void nsTableColGroupFrame::ResetColIndices(nsIFrame* aFirstColGroup,