mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 22:01:30 +00:00
Bug 259032. DeCOMtaminate nsIFrame::GetNext/PrevInFlow. r+sr=roc, patch by Will Levine
This commit is contained in:
parent
a6d5a5b857
commit
44a2fd5b52
@ -740,7 +740,7 @@ void nsAccessible::GetBoundsRect(nsRect& aTotalBounds, nsIFrame** aBoundingFrame
|
||||
// Use next sibling if it exists, or go back up the tree to get the first next-in-flow or next-sibling
|
||||
// within our search
|
||||
while (iterFrame) {
|
||||
iterFrame->GetNextInFlow(&iterNextFrame);
|
||||
iterNextFrame = iterFrame->GetNextInFlow();
|
||||
if (!iterNextFrame)
|
||||
iterNextFrame = iterFrame->GetNextSibling();
|
||||
if (iterNextFrame || --depth < 0)
|
||||
|
@ -3203,7 +3203,7 @@ DocumentViewerImpl::PrintPreviewNavigate(PRInt16 aType, PRInt32 aPageNum)
|
||||
|
||||
if (aType == nsIWebBrowserPrint::PRINTPREVIEW_PREV_PAGE) {
|
||||
if (currentPage) {
|
||||
currentPage->GetPrevInFlow(&fndPageFrame);
|
||||
fndPageFrame = currentPage->GetPrevInFlow();
|
||||
if (!fndPageFrame) {
|
||||
return NS_OK;
|
||||
}
|
||||
@ -3212,7 +3212,7 @@ DocumentViewerImpl::PrintPreviewNavigate(PRInt16 aType, PRInt32 aPageNum)
|
||||
}
|
||||
} else if (aType == nsIWebBrowserPrint::PRINTPREVIEW_NEXT_PAGE) {
|
||||
if (currentPage) {
|
||||
currentPage->GetNextInFlow(&fndPageFrame);
|
||||
fndPageFrame = currentPage->GetNextInFlow();
|
||||
if (!fndPageFrame) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -4839,7 +4839,8 @@ nsTypedSelection::selectFrames(nsPresContext* aPresContext,
|
||||
while (!frameRect.width || !frameRect.height)
|
||||
{
|
||||
//try to notify next in flow that its content is selected.
|
||||
if (NS_SUCCEEDED(frame->GetNextInFlow(&frame)) && frame)
|
||||
frame = frame->GetNextInFlow();
|
||||
if (frame)
|
||||
{
|
||||
frameRect = frame->GetRect();
|
||||
frame->SetSelected(aPresContext, nsnull,aFlags,eSpreadDown);
|
||||
|
@ -622,7 +622,7 @@ nsGenericHTMLElement::GetOffsetRect(nsRect& aRect, nsIContent** aOffsetParent)
|
||||
|
||||
do {
|
||||
rcFrame.UnionRect(rcFrame, next->GetRect());
|
||||
next->GetNextInFlow(&next);
|
||||
next = next->GetNextInFlow();
|
||||
} while (next);
|
||||
|
||||
if (rcFrame.IsEmpty()) {
|
||||
|
@ -188,7 +188,7 @@ inFlasher::DrawElementOutline(nsIDOMElement* aElement)
|
||||
rcontext->InvertRect(rect);
|
||||
}
|
||||
|
||||
frame->GetNextInFlow(&frame);
|
||||
frame = frame->GetNextInFlow();
|
||||
|
||||
PRBool isLastFrame = (frame == nsnull);
|
||||
DrawOutline(rect.x, rect.y, rect.width, rect.height, p2t, rcontext,
|
||||
|
@ -2574,8 +2574,7 @@ nsTypeAheadFind::IsRangeVisible(nsIPresShell *aPresShell,
|
||||
if (startRangeOffset < endFrameOffset) {
|
||||
break;
|
||||
}
|
||||
nsIFrame *nextInFlowFrame = nsnull;
|
||||
frame->GetNextInFlow(&nextInFlowFrame);
|
||||
nsIFrame *nextInFlowFrame = frame->GetNextInFlow();
|
||||
if (nextInFlowFrame) {
|
||||
frame = nextInFlowFrame;
|
||||
}
|
||||
|
@ -803,7 +803,7 @@ nsBidiPresUtils::RemoveBidiContinuation(nsPresContext* aPresContext,
|
||||
frame = aFrame;
|
||||
do {
|
||||
propTable->DeleteProperty(frame, nsLayoutAtoms::nextBidi);
|
||||
frame->GetPrevInFlow(&frame);
|
||||
frame = frame->GetPrevInFlow();
|
||||
if (!frame) {
|
||||
break;
|
||||
}
|
||||
|
@ -450,8 +450,7 @@ GetLastSpecialSibling(nsFrameManager* aFrameManager, nsIFrame* aFrame)
|
||||
static nsIFrame*
|
||||
GetNifOrSpecialSibling(nsFrameManager *aFrameManager, nsIFrame *aFrame)
|
||||
{
|
||||
nsIFrame *result;
|
||||
aFrame->GetNextInFlow(&result);
|
||||
nsIFrame *result = aFrame->GetNextInFlow();
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
@ -466,17 +465,14 @@ SetFrameIsSpecial(nsFrameManager* aFrameManager, nsIFrame* aFrame, nsIFrame* aSp
|
||||
NS_PRECONDITION(aFrameManager && aFrame, "bad args!");
|
||||
|
||||
// Mark the frame and all of its siblings as "special".
|
||||
for (nsIFrame* frame = aFrame; frame != nsnull; frame->GetNextInFlow(&frame)) {
|
||||
for (nsIFrame* frame = aFrame; frame != nsnull; frame = frame->GetNextInFlow()) {
|
||||
frame->AddStateBits(NS_FRAME_IS_SPECIAL);
|
||||
}
|
||||
|
||||
if (aSpecialSibling) {
|
||||
#ifdef DEBUG
|
||||
// We should be the first-in-flow
|
||||
nsIFrame* prev;
|
||||
aFrame->GetPrevInFlow(&prev);
|
||||
NS_ASSERTION(! prev, "assigning special sibling to other than first-in-flow!");
|
||||
#endif
|
||||
NS_ASSERTION(!aFrame->GetPrevInFlow(),
|
||||
"assigning special sibling to other than first-in-flow!");
|
||||
|
||||
// Store the "special sibling" (if we were given one) with the
|
||||
// first frame in the flow.
|
||||
@ -7810,12 +7806,9 @@ FindNextAnonymousSibling(nsIPresShell* aPresShell,
|
||||
nsIFrame* nextSibling;
|
||||
aPresShell->GetPrimaryFrameFor(child, &nextSibling);
|
||||
if (nextSibling) {
|
||||
#ifdef DEBUG
|
||||
// The primary frame should never be a continuation
|
||||
nsIFrame* prevInFlow;
|
||||
nextSibling->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "primary frame is a continuation!?");
|
||||
#endif
|
||||
NS_ASSERTION(!nextSibling->GetPrevInFlow(),
|
||||
"primary frame is a continuation!?");
|
||||
|
||||
// If the frame is out-of-flow, GPFF() will have returned the
|
||||
// out-of-flow frame; we want the placeholder.
|
||||
@ -7996,12 +7989,9 @@ nsCSSFrameConstructor::FindNextSibling(nsIPresShell* aPresShell,
|
||||
aPresShell->GetPrimaryFrameFor(nsCOMPtr<nsIContent>(*iter), &nextSibling);
|
||||
|
||||
if (nextSibling) {
|
||||
#ifdef DEBUG
|
||||
// The frame primary frame should never be a continuation
|
||||
nsIFrame* prevInFlow;
|
||||
nextSibling->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "primary frame is a continuation!?");
|
||||
#endif
|
||||
NS_ASSERTION(!nextSibling->GetPrevInFlow(),
|
||||
"primary frame is a continuation!?");
|
||||
|
||||
// If the frame is out-of-flow, GPFF() will have returned the
|
||||
// out-of-flow frame; we want the placeholder.
|
||||
@ -9298,7 +9288,7 @@ DeletingFrameSubtree(nsPresContext* aPresContext,
|
||||
// recursing over a subtree, because those continuing frames should be
|
||||
// found as part of the walk over the top-most frame's continuing frames.
|
||||
// Walking them again will make this an N^2/2 algorithm
|
||||
aFrame->GetNextInFlow(&aFrame);
|
||||
aFrame = aFrame->GetNextInFlow();
|
||||
} while (aFrame);
|
||||
|
||||
// Now destroy any frames that have been enqueued for destruction.
|
||||
@ -10691,8 +10681,7 @@ nsCSSFrameConstructor::CreateContinuingTableFrame(nsIPresShell* aPresShell,
|
||||
if ((NS_STYLE_DISPLAY_TABLE_HEADER_GROUP == display->mDisplay) ||
|
||||
(NS_STYLE_DISPLAY_TABLE_FOOTER_GROUP == display->mDisplay)) {
|
||||
// If the row group has was continued, then don't replicate it
|
||||
nsIFrame* rgNextInFlow;
|
||||
rowGroupFrame->GetNextInFlow(&rgNextInFlow);
|
||||
nsIFrame* rgNextInFlow = rowGroupFrame->GetNextInFlow();
|
||||
if (rgNextInFlow) {
|
||||
((nsTableRowGroupFrame*)rowGroupFrame)->SetRepeatable(PR_FALSE);
|
||||
}
|
||||
@ -10746,9 +10735,7 @@ nsCSSFrameConstructor::CreateContinuingFrame(nsPresContext* aPresContext,
|
||||
nsStyleContext* styleContext = aFrame->GetStyleContext();
|
||||
nsIFrame* newFrame = nsnull;
|
||||
nsresult rv = NS_OK;
|
||||
nsIFrame* nextInFlow = nsnull;
|
||||
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
|
||||
// Use the frame type to determine what type of frame to create
|
||||
nsIAtom* frameType = aFrame->GetType();
|
||||
@ -10944,8 +10931,7 @@ nsCSSFrameConstructor::CreateContinuingFrame(nsPresContext* aPresContext,
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
nsIFrame* prevPage;
|
||||
pageFrame->GetPrevInFlow(&prevPage);
|
||||
nsIFrame* prevPage = pageFrame->GetPrevInFlow();
|
||||
if (!prevPage) {
|
||||
return NS_OK;
|
||||
}
|
||||
@ -11877,8 +11863,7 @@ nsCSSFrameConstructor::InsertFirstLineFrames(
|
||||
// need to be pulled out of the line-frame and become children
|
||||
// of the block.
|
||||
nsIFrame* nextSibling = aPrevSibling->GetNextSibling();
|
||||
nsIFrame* nextLineFrame;
|
||||
prevSiblingParent->GetNextInFlow(&nextLineFrame);
|
||||
nsIFrame* nextLineFrame = prevSiblingParent->GetNextInFlow();
|
||||
if (nextSibling || nextLineFrame) {
|
||||
// Oy. We have work to do. Create a list of the new frames
|
||||
// that are going into the block by stripping them away from
|
||||
@ -11891,7 +11876,7 @@ nsCSSFrameConstructor::InsertFirstLineFrames(
|
||||
|
||||
nsLineFrame* nextLineFrame = (nsLineFrame*) lineFrame;
|
||||
for (;;) {
|
||||
nextLineFrame->GetNextInFlow(&nextLineFrame);
|
||||
nextLineFrame = nextLineFrame->GetNextInFlow();
|
||||
if (!nextLineFrame) {
|
||||
break;
|
||||
}
|
||||
@ -12324,8 +12309,7 @@ nsCSSFrameConstructor::RemoveFloatingFirstLetterFrames(
|
||||
|
||||
// Destroy the old text frame's continuations (the old text frame
|
||||
// will be destroyed when its letter frame is destroyed).
|
||||
nsIFrame* nextTextFrame;
|
||||
textFrame->GetNextInFlow(&nextTextFrame);
|
||||
nsIFrame* nextTextFrame = textFrame->GetNextInFlow();
|
||||
if (nextTextFrame) {
|
||||
nsIFrame* nextTextParent = nextTextFrame->GetParent();
|
||||
if (nextTextParent) {
|
||||
@ -13268,8 +13252,7 @@ nsCSSFrameConstructor::SplitToContainingBlock(nsPresContext* aPresContext,
|
||||
|
||||
// If we have a continuation frame, then we need to break the
|
||||
// continuation.
|
||||
nsIFrame* nextInFlow;
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
if (nextInFlow) {
|
||||
aFrame->SetNextInFlow(nsnull);
|
||||
nextInFlow->SetPrevInFlow(nsnull);
|
||||
|
@ -145,8 +145,7 @@ protected:
|
||||
{
|
||||
NS_PRECONDITION(aFrame, "Need a frame");
|
||||
|
||||
nsIFrame *prevInFlow = nsnull;
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame *prevInFlow = aFrame->GetPrevInFlow();
|
||||
|
||||
if (!prevInFlow || mFrame != prevInFlow) {
|
||||
// Ok, we've got the wrong frame. We have to start from scratch.
|
||||
@ -163,18 +162,17 @@ protected:
|
||||
}
|
||||
|
||||
void Init(nsIFrame* aFrame)
|
||||
{
|
||||
nsIFrame* inlineFrame;
|
||||
{
|
||||
// Start with the previous flow frame as our continuation point
|
||||
// is the total of the widths of the previous frames.
|
||||
aFrame->GetPrevInFlow(&inlineFrame);
|
||||
nsIFrame* inlineFrame = aFrame->GetPrevInFlow();
|
||||
|
||||
while (inlineFrame) {
|
||||
nsRect rect = inlineFrame->GetRect();
|
||||
mContinuationPoint += rect.width;
|
||||
mUnbrokenWidth += rect.width;
|
||||
mBoundingBox.UnionRect(mBoundingBox, rect);
|
||||
inlineFrame->GetPrevInFlow(&inlineFrame);
|
||||
inlineFrame = inlineFrame->GetPrevInFlow();
|
||||
}
|
||||
|
||||
// Next add this frame and subsequent frames to the bounding box and
|
||||
@ -184,7 +182,7 @@ protected:
|
||||
nsRect rect = inlineFrame->GetRect();
|
||||
mUnbrokenWidth += rect.width;
|
||||
mBoundingBox.UnionRect(mBoundingBox, rect);
|
||||
inlineFrame->GetNextInFlow(&inlineFrame);
|
||||
inlineFrame = inlineFrame->GetNextInFlow();
|
||||
}
|
||||
|
||||
mFrame = aFrame;
|
||||
|
@ -3203,7 +3203,7 @@ DocumentViewerImpl::PrintPreviewNavigate(PRInt16 aType, PRInt32 aPageNum)
|
||||
|
||||
if (aType == nsIWebBrowserPrint::PRINTPREVIEW_PREV_PAGE) {
|
||||
if (currentPage) {
|
||||
currentPage->GetPrevInFlow(&fndPageFrame);
|
||||
fndPageFrame = currentPage->GetPrevInFlow();
|
||||
if (!fndPageFrame) {
|
||||
return NS_OK;
|
||||
}
|
||||
@ -3212,7 +3212,7 @@ DocumentViewerImpl::PrintPreviewNavigate(PRInt16 aType, PRInt32 aPageNum)
|
||||
}
|
||||
} else if (aType == nsIWebBrowserPrint::PRINTPREVIEW_NEXT_PAGE) {
|
||||
if (currentPage) {
|
||||
currentPage->GetNextInFlow(&fndPageFrame);
|
||||
fndPageFrame = currentPage->GetNextInFlow();
|
||||
if (!fndPageFrame) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -122,8 +122,7 @@ GetNextChildFrame(nsPresContext* aPresContext, nsIFrame* aFrame)
|
||||
// If there's no next sibling, then check if the parent frame
|
||||
// has a next-in-flow and look there
|
||||
if (!nextSibling) {
|
||||
nsIFrame* parent;
|
||||
aFrame->GetParent()->GetNextInFlow(&parent);
|
||||
nsIFrame* parent = aFrame->GetParent()->GetNextInFlow();
|
||||
|
||||
if (parent) {
|
||||
nextSibling = parent->GetFirstChild(nsnull);
|
||||
@ -184,7 +183,7 @@ GetPrevChildFrame(nsPresContext* aPresContext, nsIFrame* aFrame)
|
||||
// If there's no previous sibling, then check if the parent frame
|
||||
// has a prev-in-flow and look there
|
||||
if (!prevSibling) {
|
||||
parent->GetPrevInFlow(&parent);
|
||||
parent = parent->GetPrevInFlow();
|
||||
|
||||
if (parent) {
|
||||
firstChild = parent->GetFirstChild(nsnull);
|
||||
@ -195,8 +194,7 @@ GetPrevChildFrame(nsPresContext* aPresContext, nsIFrame* aFrame)
|
||||
|
||||
// Get the first-in-flow
|
||||
while (PR_TRUE) {
|
||||
nsIFrame* prevInFlow;
|
||||
prevSibling->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = prevSibling->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
prevSibling = prevInFlow;
|
||||
} else {
|
||||
|
@ -1498,8 +1498,7 @@ nsFrameManager::ReResolveStyleContext(nsPresContext *aPresContext,
|
||||
localContent->IsContentOfType(nsIContent::eELEMENT)) {
|
||||
// Check for a new :before pseudo and an existing :before
|
||||
// frame, but only if the frame is the first-in-flow.
|
||||
nsIFrame* prevInFlow = nsnull;
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aFrame->GetPrevInFlow();
|
||||
if (!prevInFlow) {
|
||||
// Checking for a :before frame is cheaper than getting the
|
||||
// :before style context.
|
||||
@ -1524,8 +1523,7 @@ nsFrameManager::ReResolveStyleContext(nsPresContext *aPresContext,
|
||||
localContent->IsContentOfType(nsIContent::eELEMENT)) {
|
||||
// Check for new :after content, but only if the frame is the
|
||||
// first-in-flow.
|
||||
nsIFrame* nextInFlow = nsnull;
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
|
||||
if (!nextInFlow) {
|
||||
// Getting the :after frame is more expensive than getting the pseudo
|
||||
@ -1623,13 +1621,7 @@ nsFrameManager::ComputeStyleChangeFor(nsIFrame *aFrame,
|
||||
nsIFrame* frame = aFrame;
|
||||
nsIFrame* frame2 = aFrame;
|
||||
|
||||
#ifdef DEBUG
|
||||
{
|
||||
nsIFrame* prevInFlow;
|
||||
frame->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "must start with the first in flow");
|
||||
}
|
||||
#endif
|
||||
NS_ASSERTION(!frame->GetPrevInFlow(), "must start with the first in flow");
|
||||
|
||||
// We want to start with this frame and walk all its next-in-flows,
|
||||
// as well as all its special siblings and their next-in-flows,
|
||||
@ -1650,15 +1642,12 @@ nsFrameManager::ComputeStyleChangeFor(nsIFrame *aFrame,
|
||||
// If it's going to cause a framechange, then don't bother
|
||||
// with the continuations or special siblings since they'll be
|
||||
// clobbered by the frame reconstruct anyway.
|
||||
#ifdef NS_DEBUG
|
||||
nsIFrame* prevInFlow;
|
||||
frame->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "continuing frame had more severe impact than first-in-flow");
|
||||
#endif
|
||||
NS_ASSERTION(!frame->GetPrevInFlow(),
|
||||
"continuing frame had more severe impact than first-in-flow");
|
||||
return topLevelChange;
|
||||
}
|
||||
|
||||
frame->GetNextInFlow(&frame);
|
||||
frame = frame->GetNextInFlow();
|
||||
} while (frame);
|
||||
|
||||
// Might we have special siblings?
|
||||
|
@ -131,11 +131,7 @@ nsIFrame*
|
||||
nsLayoutUtils::GetBeforeFrame(nsIFrame* aFrame, nsPresContext* aPresContext)
|
||||
{
|
||||
NS_PRECONDITION(aFrame, "NULL frame pointer");
|
||||
#ifdef DEBUG
|
||||
nsIFrame* prevInFlow = nsnull;
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "aFrame must be first-in-flow");
|
||||
#endif
|
||||
NS_ASSERTION(!aFrame->GetPrevInFlow(), "aFrame must be first-in-flow");
|
||||
|
||||
nsIFrame* firstFrame = GetFirstChildFrame(aPresContext, aFrame, aFrame->GetContent());
|
||||
|
||||
|
@ -825,9 +825,9 @@ public:
|
||||
/**
|
||||
* Flow member functions
|
||||
*/
|
||||
NS_IMETHOD GetPrevInFlow(nsIFrame** aPrevInFlow) const = 0;
|
||||
virtual nsIFrame* GetPrevInFlow() const = 0;
|
||||
NS_IMETHOD SetPrevInFlow(nsIFrame*) = 0;
|
||||
NS_IMETHOD GetNextInFlow(nsIFrame** aNextInFlow) const = 0;
|
||||
virtual nsIFrame* GetNextInFlow() const = 0;
|
||||
NS_IMETHOD SetNextInFlow(nsIFrame*) = 0;
|
||||
|
||||
/**
|
||||
|
@ -803,7 +803,7 @@ nsBidiPresUtils::RemoveBidiContinuation(nsPresContext* aPresContext,
|
||||
frame = aFrame;
|
||||
do {
|
||||
propTable->DeleteProperty(frame, nsLayoutAtoms::nextBidi);
|
||||
frame->GetPrevInFlow(&frame);
|
||||
frame = frame->GetPrevInFlow();
|
||||
if (!frame) {
|
||||
break;
|
||||
}
|
||||
|
@ -131,11 +131,7 @@ nsIFrame*
|
||||
nsLayoutUtils::GetBeforeFrame(nsIFrame* aFrame, nsPresContext* aPresContext)
|
||||
{
|
||||
NS_PRECONDITION(aFrame, "NULL frame pointer");
|
||||
#ifdef DEBUG
|
||||
nsIFrame* prevInFlow = nsnull;
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "aFrame must be first-in-flow");
|
||||
#endif
|
||||
NS_ASSERTION(!aFrame->GetPrevInFlow(), "aFrame must be first-in-flow");
|
||||
|
||||
nsIFrame* firstFrame = GetFirstChildFrame(aPresContext, aFrame, aFrame->GetContent());
|
||||
|
||||
|
@ -827,8 +827,7 @@ nsBlockFrame::Reflow(nsPresContext* aPresContext,
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "reflow dirty lines failed");
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
nsIFrame* nextInFlow;
|
||||
GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = GetNextInFlow();
|
||||
if (nextInFlow && NS_FRAME_IS_NOT_COMPLETE(state.mReflowStatus)) {
|
||||
if (GetOverflowLines() || GetOverflowPlaceholders()) {
|
||||
state.mReflowStatus |= NS_FRAME_REFLOW_NEXTINFLOW;
|
||||
@ -1243,7 +1242,7 @@ nsBlockFrame::ComputeFinalSize(const nsHTMLReflowState& aReflowState,
|
||||
if (mPrevInFlow) {
|
||||
// Reduce the height by the height of prev-in-flows. The last-in-flow will automatically
|
||||
// pick up the bottom border/padding, since it was part of the original aMetrics.height.
|
||||
for (nsIFrame* prev = mPrevInFlow; prev; prev->GetPrevInFlow(&prev)) {
|
||||
for (nsIFrame* prev = mPrevInFlow; prev; prev = prev->GetPrevInFlow()) {
|
||||
aMetrics.height -= prev->GetRect().height;
|
||||
// XXX: All block level next-in-flows have borderPadding.top applied to them (bug 174688).
|
||||
// The following should be removed when this gets fixed. bug 174688 prevents us from honoring
|
||||
@ -1461,8 +1460,7 @@ nsBlockFrame::PrepareChildIncrementalReflow(nsBlockReflowState& aState)
|
||||
// of the continuations. This will allow the incremental
|
||||
// reflow to arrive at the target frame during the first-pass
|
||||
// unconstrained reflow.
|
||||
nsIFrame *prevInFlow;
|
||||
(*iter)->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame *prevInFlow = (*iter)->GetPrevInFlow();
|
||||
if (prevInFlow)
|
||||
RetargetInlineIncrementalReflow(iter, line, prevInFlow);
|
||||
}
|
||||
@ -1507,7 +1505,7 @@ nsBlockFrame::RetargetInlineIncrementalReflow(nsReflowPath::iterator &aTarget,
|
||||
break;
|
||||
|
||||
*aTarget = aPrevInFlow;
|
||||
aPrevInFlow->GetPrevInFlow(&aPrevInFlow);
|
||||
aPrevInFlow = aPrevInFlow->GetPrevInFlow();
|
||||
|
||||
#ifdef DEBUG
|
||||
// Paranoia. Ensure that the prev-in-flow is really in the
|
||||
@ -1548,7 +1546,7 @@ nsBlockFrame::RetargetInlineIncrementalReflow(nsReflowPath::iterator &aTarget,
|
||||
PRInt32 count = lineCount;
|
||||
nsIFrame *prevInFlow;
|
||||
do {
|
||||
frame->GetPrevInFlow(&prevInFlow);
|
||||
prevInFlow = frame->GetPrevInFlow();
|
||||
} while (--count >= 0 && prevInFlow && (frame = prevInFlow));
|
||||
|
||||
path->ReplaceElementAt(frame, i);
|
||||
@ -2975,8 +2973,7 @@ nsBlockFrame::ReflowBlockFrame(nsBlockReflowState& aState,
|
||||
// apply its top margin because its not significant. Otherwise, dig
|
||||
// deeper.
|
||||
PRBool applyTopMargin = PR_FALSE;
|
||||
nsIFrame* framePrevInFlow;
|
||||
frame->GetPrevInFlow(&framePrevInFlow);
|
||||
nsIFrame* framePrevInFlow = frame->GetPrevInFlow();
|
||||
if (nsnull == framePrevInFlow) {
|
||||
applyTopMargin = ShouldApplyTopMargin(aState, aLine);
|
||||
}
|
||||
@ -4746,8 +4743,7 @@ nsBlockFrame::DoRemoveOutOfFlowFrame(nsPresContext* aPresContext,
|
||||
nsIFrame* aFrame)
|
||||
{
|
||||
// First remove aFrame's next in flow
|
||||
nsIFrame* nextInFlow;
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
if (nextInFlow) {
|
||||
nsBlockFrame::DoRemoveOutOfFlowFrame(aPresContext, nextInFlow);
|
||||
}
|
||||
@ -4890,8 +4886,7 @@ nsBlockFrame::DoRemoveFrame(nsPresContext* aPresContext,
|
||||
|
||||
// Destroy frame; capture its next-in-flow first in case we need
|
||||
// to destroy that too.
|
||||
nsIFrame* nextInFlow;
|
||||
aDeletedFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aDeletedFrame->GetNextInFlow();
|
||||
#ifdef NOISY_REMOVE_FRAME
|
||||
printf("DoRemoveFrame: line=%p frame=", line);
|
||||
nsFrame::ListTag(stdout, aDeletedFrame);
|
||||
@ -4973,8 +4968,7 @@ void
|
||||
nsBlockFrame::DeleteNextInFlowChild(nsPresContext* aPresContext,
|
||||
nsIFrame* aNextInFlow)
|
||||
{
|
||||
nsIFrame* prevInFlow;
|
||||
aNextInFlow->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aNextInFlow->GetPrevInFlow();
|
||||
NS_PRECONDITION(prevInFlow, "bad next-in-flow");
|
||||
NS_PRECONDITION(IsChild(aNextInFlow), "bad geometric parent");
|
||||
|
||||
@ -4997,8 +4991,7 @@ nsBlockFrame::ReflowFloat(nsBlockReflowState& aState,
|
||||
nsReflowStatus& aReflowStatus)
|
||||
{
|
||||
// Delete the placeholder's next in flows, if any
|
||||
nsIFrame* nextInFlow;
|
||||
aPlaceholder->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aPlaceholder->GetNextInFlow();
|
||||
if (nextInFlow) {
|
||||
// If aPlaceholder's parent is an inline, nextInFlow's will be a block.
|
||||
NS_STATIC_CAST(nsHTMLContainerFrame*, nextInFlow->GetParent())
|
||||
@ -5025,8 +5018,7 @@ nsBlockFrame::ReflowFloat(nsBlockReflowState& aState,
|
||||
else {
|
||||
const nsStyleDisplay* floatDisplay = floatFrame->GetStyleDisplay();
|
||||
|
||||
nsIFrame* prevInFlow;
|
||||
floatFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = floatFrame->GetPrevInFlow();
|
||||
// if the float is continued, constrain its width to the prev-in-flow's width
|
||||
if (prevInFlow) {
|
||||
availWidth = prevInFlow->GetRect().width;
|
||||
@ -5168,8 +5160,7 @@ nsBlockFrame::ReflowFloat(nsBlockReflowState& aState,
|
||||
// If the placeholder was continued and its first-in-flow was followed by a
|
||||
// <BR>, then cache the <BR>'s break type in aState.mFloatBreakType so that
|
||||
// the next frame after the placeholder can combine that break type with its own
|
||||
nsIFrame* prevPlaceholder = nsnull;
|
||||
aPlaceholder->GetPrevInFlow(&prevPlaceholder);
|
||||
nsIFrame* prevPlaceholder = aPlaceholder->GetPrevInFlow();
|
||||
if (prevPlaceholder) {
|
||||
// the break occurs only after the last continued placeholder
|
||||
PRBool lastPlaceholder = PR_TRUE;
|
||||
@ -6155,8 +6146,7 @@ nsBlockFrame::IsChild(nsIFrame* aFrame)
|
||||
// and placeholders don't satisfy InSiblingList().
|
||||
PRBool skipLineList = PR_FALSE;
|
||||
PRBool skipSiblingList = PR_FALSE;
|
||||
nsIFrame* prevInFlow;
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aFrame->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
nsFrameState state = aFrame->GetStateBits();
|
||||
skipLineList = (state & NS_FRAME_OUT_OF_FLOW);
|
||||
@ -6359,7 +6349,7 @@ nsBlockFrame::RenumberListsInBlock(nsPresContext* aPresContext,
|
||||
}
|
||||
|
||||
// Advance to the next continuation
|
||||
aBlockFrame->GetNextInFlow((nsIFrame**) &aBlockFrame);
|
||||
aBlockFrame = NS_STATIC_CAST(nsBlockFrame*, aBlockFrame->GetNextInFlow());
|
||||
}
|
||||
|
||||
return renumberedABullet;
|
||||
|
@ -617,8 +617,7 @@ nsBlockReflowContext::ReflowBlock(const nsRect& aSpace,
|
||||
// the frame is going to get reflowed again (and may end up wanting
|
||||
// a next-in-flow where it ends up), unless it is an out of flow frame.
|
||||
if (NS_FRAME_IS_COMPLETE(aFrameReflowStatus)) {
|
||||
nsIFrame* kidNextInFlow;
|
||||
mFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = mFrame->GetNextInFlow();
|
||||
if (nsnull != kidNextInFlow) {
|
||||
// Remove all of the childs next-in-flows. Make sure that we ask
|
||||
// the right parent to do the removal (it's possible that the
|
||||
|
@ -99,7 +99,7 @@ nsBlockReflowState::nsBlockReflowState(const nsHTMLReflowState& aReflowState,
|
||||
mReflowStatus = NS_FRAME_COMPLETE;
|
||||
|
||||
mPresContext = aPresContext;
|
||||
mBlock->GetNextInFlow(NS_REINTERPRET_CAST(nsIFrame**, &mNextInFlow));
|
||||
mNextInFlow = NS_STATIC_CAST(nsBlockFrame*, mBlock->GetNextInFlow());
|
||||
mKidXMost = 0;
|
||||
|
||||
// Compute content area width (the content area is inside the border
|
||||
@ -953,17 +953,15 @@ nsBlockReflowState::FlowAndPlaceFloat(nsFloatCache* aFloatCache,
|
||||
}
|
||||
// If the float is continued, it will get the same absolute x value as its prev-in-flow
|
||||
nsRect prevRect(0,0,0,0);
|
||||
nsIFrame* prevInFlow;
|
||||
floatFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = floatFrame->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
prevRect = prevInFlow->GetRect();
|
||||
|
||||
nsIFrame *placeParentPrev, *prevPlace;
|
||||
// If prevInFlow's placeholder is in a block that wasn't continued, we need to adjust
|
||||
// prevRect.x to account for the missing frame offsets.
|
||||
nsIFrame* placeParent = placeholder->GetParent();
|
||||
placeParent->GetPrevInFlow(&placeParentPrev);
|
||||
prevPlace =
|
||||
nsIFrame* placeParentPrev = placeParent->GetPrevInFlow();
|
||||
nsIFrame* prevPlace =
|
||||
mPresContext->FrameManager()->GetPlaceholderFrameFor(prevInFlow);
|
||||
|
||||
nsIFrame* prevPlaceParent = prevPlace->GetParent();
|
||||
|
@ -991,8 +991,7 @@ nsContainerFrame::ReflowChild(nsIFrame* aKidFrame,
|
||||
// If the reflow was successful and the child frame is complete, delete any
|
||||
// next-in-flows
|
||||
if (NS_SUCCEEDED(result) && NS_FRAME_IS_COMPLETE(aStatus)) {
|
||||
nsIFrame* kidNextInFlow;
|
||||
aKidFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = aKidFrame->GetNextInFlow();
|
||||
if (nsnull != kidNextInFlow) {
|
||||
// Remove all of the childs next-in-flows. Make sure that we ask
|
||||
// the right parent to do the removal (it's possible that the
|
||||
@ -1107,15 +1106,13 @@ void
|
||||
nsContainerFrame::DeleteNextInFlowChild(nsPresContext* aPresContext,
|
||||
nsIFrame* aNextInFlow)
|
||||
{
|
||||
nsIFrame* prevInFlow;
|
||||
aNextInFlow->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aNextInFlow->GetPrevInFlow();
|
||||
NS_PRECONDITION(prevInFlow, "bad prev-in-flow");
|
||||
NS_PRECONDITION(mFrames.ContainsFrame(aNextInFlow), "bad geometric parent");
|
||||
|
||||
// If the next-in-flow has a next-in-flow then delete it, too (and
|
||||
// delete it first).
|
||||
nsIFrame* nextNextInFlow;
|
||||
aNextInFlow->GetNextInFlow(&nextNextInFlow);
|
||||
nsIFrame* nextNextInFlow = aNextInFlow->GetNextInFlow();
|
||||
if (nextNextInFlow) {
|
||||
NS_STATIC_CAST(nsContainerFrame*, nextNextInFlow->GetParent())
|
||||
->DeleteNextInFlowChild(aPresContext, nextNextInFlow);
|
||||
@ -1153,11 +1150,7 @@ nsContainerFrame::DeleteNextInFlowChild(nsPresContext* aPresContext,
|
||||
// Delete the next-in-flow frame and its descendants.
|
||||
aNextInFlow->Destroy(aPresContext);
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
nsIFrame* nextInFlow;
|
||||
prevInFlow->GetNextInFlow(&nextInFlow);
|
||||
NS_POSTCONDITION(!nextInFlow, "non null next-in-flow");
|
||||
#endif
|
||||
NS_POSTCONDITION(!prevInFlow->GetNextInFlow(), "non null next-in-flow");
|
||||
}
|
||||
|
||||
nsIFrame*
|
||||
|
@ -292,8 +292,7 @@ nsFirstLetterFrame::Reflow(nsPresContext* aPresContext,
|
||||
// Create a continuation or remove existing continuations based on
|
||||
// the reflow completion status.
|
||||
if (NS_FRAME_IS_COMPLETE(aReflowStatus)) {
|
||||
nsIFrame* kidNextInFlow;
|
||||
kid->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = kid->GetNextInFlow();
|
||||
if (kidNextInFlow) {
|
||||
// Remove all of the childs next-in-flows
|
||||
NS_STATIC_CAST(nsContainerFrame*, kidNextInFlow->GetParent())
|
||||
|
@ -1221,9 +1221,8 @@ ContentContainsPoint(nsPresContext *aPresContext,
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
rv = frame->GetNextInFlow(&frame);
|
||||
frame = frame->GetNextInFlow();
|
||||
|
||||
if (NS_FAILED(rv)) return PR_FALSE;
|
||||
}
|
||||
|
||||
return PR_FALSE;
|
||||
@ -2100,8 +2099,7 @@ nsFrame::DidReflow(nsPresContext* aPresContext,
|
||||
aReflowState->mStylePosition && // percent height
|
||||
(eStyleUnit_Percent == aReflowState->mStylePosition->mHeight.GetUnit())) {
|
||||
|
||||
nsIFrame* prevInFlow;
|
||||
GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = GetPrevInFlow();
|
||||
if (!prevInFlow) { // 1st in flow
|
||||
aReflowState->mPercentHeightObserver->NotifyPercentHeight(*aReflowState);
|
||||
}
|
||||
@ -2181,10 +2179,9 @@ NS_IMETHODIMP nsFrame::IsSplittable(nsSplittableType& aIsSplittable) const
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsFrame::GetPrevInFlow(nsIFrame** aPrevInFlow) const
|
||||
nsIFrame* nsFrame::GetPrevInFlow() const
|
||||
{
|
||||
*aPrevInFlow = nsnull;
|
||||
return NS_OK;
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsFrame::SetPrevInFlow(nsIFrame* aPrevInFlow)
|
||||
@ -2198,10 +2195,9 @@ NS_IMETHODIMP nsFrame::SetPrevInFlow(nsIFrame* aPrevInFlow)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsFrame::GetNextInFlow(nsIFrame** aNextInFlow) const
|
||||
nsIFrame* nsFrame::GetNextInFlow() const
|
||||
{
|
||||
*aNextInFlow = nsnull;
|
||||
return NS_OK;
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsFrame::SetNextInFlow(nsIFrame*)
|
||||
@ -3042,10 +3038,10 @@ nsFrame::GetChildFrameContainingOffset(PRInt32 inContentOffset, PRBool inHint, P
|
||||
nsRect rect = GetRect();
|
||||
if (!rect.width || !rect.height)
|
||||
{
|
||||
nsIFrame *nextFlow = nsnull;
|
||||
//if we have a 0 width or height then lets look for another frame that possibly has
|
||||
//the same content. If we have no frames in flow then just let us return 'this' frame
|
||||
if (NS_SUCCEEDED(GetNextInFlow(&nextFlow)) && nextFlow)
|
||||
nsIFrame* nextFlow = GetNextInFlow();
|
||||
if (nextFlow)
|
||||
return nextFlow->GetChildFrameContainingOffset(inContentOffset, inHint, outFrameContentOffset, outChildFrame);
|
||||
}
|
||||
*outChildFrame = this;
|
||||
@ -5262,12 +5258,11 @@ static void DisplayReflowEnterPrint(nsPresContext* aPresContext,
|
||||
DR_state->PrettyUC(aReflowState.mComputedHeight, height);
|
||||
printf("c=%s,%s ", width, height);
|
||||
|
||||
nsIFrame* inFlow;
|
||||
aFrame->GetPrevInFlow(&inFlow);
|
||||
nsIFrame* inFlow = aFrame->GetPrevInFlow();
|
||||
if (inFlow) {
|
||||
printf("pif=%p ", (void*)inFlow);
|
||||
}
|
||||
aFrame->GetNextInFlow(&inFlow);
|
||||
inFlow = aFrame->GetNextInFlow();
|
||||
if (inFlow) {
|
||||
printf("nif=%p ", (void*)inFlow);
|
||||
}
|
||||
|
@ -232,9 +232,9 @@ public:
|
||||
nsIAtom* aAttribute,
|
||||
PRInt32 aModType);
|
||||
NS_IMETHOD IsSplittable(nsSplittableType& aIsSplittable) const;
|
||||
NS_IMETHOD GetPrevInFlow(nsIFrame** aPrevInFlow) const;
|
||||
virtual nsIFrame* GetPrevInFlow() const;
|
||||
NS_IMETHOD SetPrevInFlow(nsIFrame*);
|
||||
NS_IMETHOD GetNextInFlow(nsIFrame** aNextInFlow) const;
|
||||
virtual nsIFrame* GetNextInFlow() const;
|
||||
NS_IMETHOD SetNextInFlow(nsIFrame*);
|
||||
NS_IMETHOD GetOffsetFromView(nsPresContext* aPresContext, nsPoint& aOffset, nsIView** aView) const;
|
||||
NS_IMETHOD GetOriginToViewOffset(nsPresContext *aPresContext, nsPoint& aOffset, nsIView **aView) const;
|
||||
|
@ -248,7 +248,7 @@ HasTextFrameDescendant(nsPresContext* aPresContext, nsIFrame* aParent)
|
||||
static PRBool
|
||||
HasTextFrameDescendantOrInFlow(nsPresContext* aPresContext, nsIFrame* aFrame)
|
||||
{
|
||||
for (nsIFrame *f = aFrame->GetFirstInFlow(); f; f->GetNextInFlow(&f)) {
|
||||
for (nsIFrame *f = aFrame->GetFirstInFlow(); f; f = f->GetNextInFlow()) {
|
||||
if (HasTextFrameDescendant(aPresContext, f))
|
||||
return PR_TRUE;
|
||||
}
|
||||
@ -311,8 +311,7 @@ nsHTMLContainerFrame::CreateNextInFlow(nsPresContext* aPresContext,
|
||||
{
|
||||
aNextInFlowResult = nsnull;
|
||||
|
||||
nsIFrame* nextInFlow;
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
if (nsnull == nextInFlow) {
|
||||
// Create a continuation frame for the child frame and insert it
|
||||
// into our lines child list.
|
||||
|
@ -1384,8 +1384,7 @@ CalcQuirkContainingBlockHeight(const nsHTMLReflowState& aReflowState)
|
||||
}
|
||||
}
|
||||
else if (nsLayoutAtoms::pageContentFrame == frameType) {
|
||||
nsIFrame* prevInFlow;
|
||||
rs->frame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = rs->frame->GetPrevInFlow();
|
||||
// only use the page content frame for a height basis if it is the first in flow
|
||||
if (prevInFlow)
|
||||
break;
|
||||
|
@ -825,9 +825,9 @@ public:
|
||||
/**
|
||||
* Flow member functions
|
||||
*/
|
||||
NS_IMETHOD GetPrevInFlow(nsIFrame** aPrevInFlow) const = 0;
|
||||
virtual nsIFrame* GetPrevInFlow() const = 0;
|
||||
NS_IMETHOD SetPrevInFlow(nsIFrame*) = 0;
|
||||
NS_IMETHOD GetNextInFlow(nsIFrame** aNextInFlow) const = 0;
|
||||
virtual nsIFrame* GetNextInFlow() const = 0;
|
||||
NS_IMETHOD SetNextInFlow(nsIFrame*) = 0;
|
||||
|
||||
/**
|
||||
|
@ -933,7 +933,7 @@ nsImageFrame::GetContinuationOffset(nscoord* aWidth) const
|
||||
}
|
||||
|
||||
if (mPrevInFlow) {
|
||||
for (nsIFrame* prevInFlow = mPrevInFlow ; prevInFlow; prevInFlow->GetPrevInFlow(&prevInFlow)) {
|
||||
for (nsIFrame* prevInFlow = mPrevInFlow ; prevInFlow; prevInFlow = prevInFlow->GetPrevInFlow()) {
|
||||
nsRect rect = prevInFlow->GetRect();
|
||||
if (aWidth) {
|
||||
*aWidth = rect.width;
|
||||
@ -1019,12 +1019,7 @@ nsImageFrame::Reflow(nsPresContext* aPresContext,
|
||||
aMetrics.descent = 0;
|
||||
|
||||
if (aMetrics.mComputeMEW) {
|
||||
// If we have a percentage based width, then our MEW is 0
|
||||
if (eStyleUnit_Percent == aReflowState.mStylePosition->mWidth.GetUnit()) {
|
||||
aMetrics.mMaxElementWidth = 0;
|
||||
} else {
|
||||
aMetrics.mMaxElementWidth = aMetrics.width;
|
||||
}
|
||||
aMetrics.SetMEWToActualWidth(aReflowState.mStylePosition->mWidth.GetUnit());
|
||||
}
|
||||
|
||||
if (aMetrics.mFlags & NS_REFLOW_CALC_MAX_WIDTH) {
|
||||
|
@ -261,8 +261,7 @@ nsInlineFrame::RemoveFrame(nsPresContext* aPresContext,
|
||||
// When the parent is an inline frame we have a simple task - just
|
||||
// remove the frame from its parents list and generate a reflow
|
||||
// command.
|
||||
nsIFrame* oldFrameNextInFlow;
|
||||
aOldFrame->GetNextInFlow(&oldFrameNextInFlow);
|
||||
nsIFrame* oldFrameNextInFlow = aOldFrame->GetNextInFlow();
|
||||
parent->mFrames.DestroyFrame(aPresContext, aOldFrame);
|
||||
aOldFrame = oldFrameNextInFlow;
|
||||
if (aOldFrame) {
|
||||
@ -514,8 +513,7 @@ nsInlineFrame::ReflowFrames(nsPresContext* aPresContext,
|
||||
// its parent frame pointer, too. Otherwise, if we reflow frame and it's
|
||||
// complete we'll fail when deleting its next-in-flow which is no longer
|
||||
// needed. This scenario doesn't happen often, but it can happen
|
||||
nsIFrame* nextInFlow;
|
||||
frame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = frame->GetNextInFlow();
|
||||
while (nextInFlow) {
|
||||
// Since we only do lazy setting of parent pointers for the frame's
|
||||
// initial reflow, this frame can't have a next-in-flow. That means
|
||||
@ -523,7 +521,7 @@ nsInlineFrame::ReflowFrames(nsPresContext* aPresContext,
|
||||
// not, then something is wrong
|
||||
NS_ASSERTION(mFrames.ContainsFrame(nextInFlow), "unexpected flow");
|
||||
nextInFlow->SetParent(this);
|
||||
nextInFlow->GetNextInFlow(&nextInFlow);
|
||||
nextInFlow = nextInFlow->GetNextInFlow();
|
||||
}
|
||||
}
|
||||
rv = ReflowInlineFrame(aPresContext, aReflowState, irs, frame, aStatus);
|
||||
|
@ -230,8 +230,7 @@ PRBool nsLineLayout::AllocateDeque()
|
||||
inline PRBool
|
||||
HasPrevInFlow(nsIFrame *aFrame)
|
||||
{
|
||||
nsIFrame *prevInFlow;
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame *prevInFlow = aFrame->GetPrevInFlow();
|
||||
return prevInFlow != nsnull;
|
||||
}
|
||||
|
||||
@ -1151,8 +1150,7 @@ nsLineLayout::ReflowFrame(nsIFrame* aFrame,
|
||||
// the frame is going to get reflowed again (and may end up wanting
|
||||
// a next-in-flow where it ends up).
|
||||
if (NS_FRAME_IS_COMPLETE(aReflowStatus)) {
|
||||
nsIFrame* kidNextInFlow;
|
||||
aFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = aFrame->GetNextInFlow();
|
||||
if (nsnull != kidNextInFlow) {
|
||||
// Remove all of the childs next-in-flows. Make sure that we ask
|
||||
// the right parent to do the removal (it's possible that the
|
||||
@ -1203,8 +1201,7 @@ nsLineLayout::ReflowFrame(nsIFrame* aFrame,
|
||||
PRInt32 newEnd;
|
||||
aFrame->GetOffsets(start, newEnd);
|
||||
if (newEnd != end) {
|
||||
nsIFrame* nextInFlow;
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
if (nextInFlow) {
|
||||
nextInFlow->GetOffsets(start, end);
|
||||
nextInFlow->AdjustOffsetsForBidi(newEnd, end);
|
||||
@ -1387,11 +1384,9 @@ nsLineLayout::CanPlaceFrame(PerFrameData* pfd,
|
||||
// If this is a piece of text inside a letter frame...
|
||||
if (pfd->GetFlag(PFD_ISNONEMPTYTEXTFRAME)) {
|
||||
if (psd->mFrame && psd->mFrame->GetFlag(PFD_ISLETTERFRAME)) {
|
||||
nsIFrame* prevInFlow;
|
||||
psd->mFrame->mFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = psd->mFrame->mFrame->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
nsIFrame* prevPrevInFlow;
|
||||
prevInFlow->GetPrevInFlow(&prevPrevInFlow);
|
||||
nsIFrame* prevPrevInFlow = prevInFlow->GetPrevInFlow();
|
||||
if (!prevPrevInFlow) {
|
||||
// And it's the first continuation of the letter frame...
|
||||
// Then make sure that the text fits
|
||||
@ -1402,11 +1397,9 @@ nsLineLayout::CanPlaceFrame(PerFrameData* pfd,
|
||||
}
|
||||
else if (pfd->GetFlag(PFD_ISLETTERFRAME)) {
|
||||
// If this is the first continuation of the letter frame...
|
||||
nsIFrame* prevInFlow;
|
||||
pfd->mFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = pfd->mFrame->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
nsIFrame* prevPrevInFlow;
|
||||
prevInFlow->GetPrevInFlow(&prevPrevInFlow);
|
||||
nsIFrame* prevPrevInFlow = prevInFlow->GetPrevInFlow();
|
||||
if (!prevPrevInFlow) {
|
||||
return PR_TRUE;
|
||||
}
|
||||
@ -1929,10 +1922,8 @@ nsLineLayout::VerticalAlignFrames(PerSpanData* psd)
|
||||
// - it has a prev-in-flow
|
||||
// - it has no next in flow
|
||||
// - it's zero sized
|
||||
nsIFrame* spanNextInFlow;
|
||||
spanFrame->GetNextInFlow(&spanNextInFlow);
|
||||
nsIFrame* spanPrevInFlow;
|
||||
spanFrame->GetPrevInFlow(&spanPrevInFlow);
|
||||
nsIFrame* spanNextInFlow = spanFrame->GetNextInFlow();
|
||||
nsIFrame* spanPrevInFlow = spanFrame->GetPrevInFlow();
|
||||
PRBool emptyContinuation = spanPrevInFlow && !spanNextInFlow &&
|
||||
(0 == spanFramePFD->mBounds.width) && (0 == spanFramePFD->mBounds.height);
|
||||
|
||||
|
@ -117,15 +117,8 @@ NS_IMETHODIMP nsPageContentFrame::Reflow(nsPresContext* aPresContext,
|
||||
// Place and size the child
|
||||
FinishReflowChild(frame, aPresContext, &kidReflowState, aDesiredSize, 0, 0, 0);
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
// Is the frame complete?
|
||||
if (NS_FRAME_IS_COMPLETE(aStatus)) {
|
||||
nsIFrame* childNextInFlow;
|
||||
|
||||
frame->GetNextInFlow(&childNextInFlow);
|
||||
NS_ASSERTION(nsnull == childNextInFlow, "bad child flow list");
|
||||
}
|
||||
#endif
|
||||
NS_ASSERTION(!NS_FRAME_IS_COMPLETE(aStatus) ||
|
||||
!frame->GetNextInFlow(), "bad child flow list");
|
||||
|
||||
#ifdef DEBUG_PRINTING
|
||||
nsRect r = frame->GetRect();
|
||||
|
@ -221,15 +221,8 @@ NS_IMETHODIMP nsPageFrame::Reflow(nsPresContext* aPresContext,
|
||||
view->GetViewManager()->SetViewChildClipRegion(view, ®ion);
|
||||
}
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
// Is the frame complete?
|
||||
if (NS_FRAME_IS_COMPLETE(aStatus)) {
|
||||
nsIFrame* childNextInFlow;
|
||||
|
||||
frame->GetNextInFlow(&childNextInFlow);
|
||||
NS_ASSERTION(nsnull == childNextInFlow, "bad child flow list");
|
||||
}
|
||||
#endif
|
||||
NS_ASSERTION(!NS_FRAME_IS_COMPLETE(aStatus) ||
|
||||
!frame->GetNextInFlow(), "bad child flow list");
|
||||
}
|
||||
PR_PL(("PageFrame::Reflow %p ", this));
|
||||
PR_PL(("[%d,%d][%d,%d]\n", aDesiredSize.width, aDesiredSize.height, aReflowState.availableWidth, aReflowState.availableHeight));
|
||||
|
@ -4839,7 +4839,8 @@ nsTypedSelection::selectFrames(nsPresContext* aPresContext,
|
||||
while (!frameRect.width || !frameRect.height)
|
||||
{
|
||||
//try to notify next in flow that its content is selected.
|
||||
if (NS_SUCCEEDED(frame->GetNextInFlow(&frame)) && frame)
|
||||
frame = frame->GetNextInFlow();
|
||||
if (frame)
|
||||
{
|
||||
frameRect = frame->GetRect();
|
||||
frame->SetSelected(aPresContext, nsnull,aFlags,eSpreadDown);
|
||||
|
@ -428,8 +428,7 @@ nsSimplePageSequenceFrame::Reflow(nsPresContext* aPresContext,
|
||||
y += deadSpaceGap;
|
||||
|
||||
// Is the page complete?
|
||||
nsIFrame* kidNextInFlow;
|
||||
kidFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = kidFrame->GetNextInFlow();
|
||||
|
||||
if (NS_FRAME_IS_COMPLETE(status)) {
|
||||
NS_ASSERTION(nsnull == kidNextInFlow, "bad child flow list");
|
||||
|
@ -78,10 +78,9 @@ nsSplittableFrame::IsSplittable(nsSplittableType& aIsSplittable) const
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD nsSplittableFrame::GetPrevInFlow(nsIFrame** aPrevInFlow) const
|
||||
nsIFrame* nsSplittableFrame::GetPrevInFlow() const
|
||||
{
|
||||
*aPrevInFlow = mPrevInFlow;
|
||||
return NS_OK;
|
||||
return mPrevInFlow;
|
||||
}
|
||||
|
||||
NS_METHOD nsSplittableFrame::SetPrevInFlow(nsIFrame* aFrame)
|
||||
@ -90,10 +89,9 @@ NS_METHOD nsSplittableFrame::SetPrevInFlow(nsIFrame* aFrame)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD nsSplittableFrame::GetNextInFlow(nsIFrame** aNextInFlow) const
|
||||
nsIFrame* nsSplittableFrame::GetNextInFlow() const
|
||||
{
|
||||
*aNextInFlow = mNextInFlow;
|
||||
return NS_OK;
|
||||
return mNextInFlow;
|
||||
}
|
||||
|
||||
NS_METHOD nsSplittableFrame::SetNextInFlow(nsIFrame* aFrame)
|
||||
@ -126,11 +124,8 @@ nsIFrame* nsSplittableFrame::GetLastInFlow() const
|
||||
void
|
||||
nsSplittableFrame::RemoveFromFlow(nsIFrame* aFrame)
|
||||
{
|
||||
nsIFrame* prevInFlow;
|
||||
nsIFrame* nextInFlow;
|
||||
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* prevInFlow = aFrame->GetPrevInFlow();
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
|
||||
if (prevInFlow) {
|
||||
prevInFlow->SetNextInFlow(nextInFlow);
|
||||
@ -148,25 +143,13 @@ nsSplittableFrame::RemoveFromFlow(nsIFrame* aFrame)
|
||||
void
|
||||
nsSplittableFrame::BreakFromPrevFlow(nsIFrame* aFrame)
|
||||
{
|
||||
nsIFrame* prevInFlow;
|
||||
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aFrame->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
prevInFlow->SetNextInFlow(nsnull);
|
||||
aFrame->SetPrevInFlow(nsnull);
|
||||
}
|
||||
}
|
||||
|
||||
nsIFrame * nsSplittableFrame::GetPrevInFlow()
|
||||
{
|
||||
return mPrevInFlow;
|
||||
}
|
||||
|
||||
nsIFrame * nsSplittableFrame::GetNextInFlow()
|
||||
{
|
||||
return mNextInFlow;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
void
|
||||
nsSplittableFrame::DumpBaseRegressionData(nsPresContext* aPresContext, FILE* out, PRInt32 aIndent, PRBool aIncludeStyleData)
|
||||
|
@ -54,9 +54,9 @@ public:
|
||||
NS_IMETHOD Destroy(nsPresContext* aPresContext);
|
||||
|
||||
// Flow member functions.
|
||||
NS_IMETHOD GetPrevInFlow(nsIFrame** aPrevInFlow) const;
|
||||
virtual nsIFrame* GetPrevInFlow() const;
|
||||
NS_IMETHOD SetPrevInFlow(nsIFrame*);
|
||||
NS_IMETHOD GetNextInFlow(nsIFrame** aNextInFlow) const;
|
||||
virtual nsIFrame* GetNextInFlow() const;
|
||||
NS_IMETHOD SetNextInFlow(nsIFrame*);
|
||||
|
||||
/**
|
||||
@ -76,9 +76,6 @@ public:
|
||||
// Detach from previous frame in flow
|
||||
static void BreakFromPrevFlow(nsIFrame* aFrame);
|
||||
|
||||
nsIFrame* GetPrevInFlow();
|
||||
nsIFrame* GetNextInFlow();
|
||||
|
||||
protected:
|
||||
#ifdef DEBUG
|
||||
virtual void DumpBaseRegressionData(nsPresContext* aPresContext, FILE* out, PRInt32 aIndent, PRBool aIncludeStyleData);
|
||||
|
@ -404,9 +404,8 @@ public:
|
||||
nsIContent* aChild,
|
||||
PRBool aAppend);
|
||||
|
||||
NS_IMETHOD GetNextInFlow(nsIFrame** aNextInFlow) const {
|
||||
*aNextInFlow = mNextInFlow;
|
||||
return NS_OK;
|
||||
virtual nsIFrame* GetNextInFlow() const {
|
||||
return mNextInFlow;
|
||||
}
|
||||
NS_IMETHOD SetNextInFlow(nsIFrame* aNextInFlow) {
|
||||
mNextInFlow = aNextInFlow;
|
||||
@ -843,9 +842,8 @@ public:
|
||||
|
||||
NS_IMETHOD Destroy(nsPresContext* aPresContext);
|
||||
|
||||
NS_IMETHOD GetPrevInFlow(nsIFrame** aPrevInFlow) const {
|
||||
*aPrevInFlow = mPrevInFlow;
|
||||
return NS_OK;
|
||||
virtual nsIFrame* GetPrevInFlow() const {
|
||||
return mPrevInFlow;
|
||||
}
|
||||
NS_IMETHOD SetPrevInFlow(nsIFrame* aPrevInFlow) {
|
||||
mPrevInFlow = aPrevInFlow;
|
||||
@ -925,7 +923,7 @@ nsContinuingTextFrame::GetFirstInFlow() const
|
||||
NS_STATIC_CAST(const nsIFrame*, this));
|
||||
do {
|
||||
firstInFlow = previous;
|
||||
firstInFlow->GetPrevInFlow(&previous);
|
||||
previous = firstInFlow->GetPrevInFlow();
|
||||
} while (previous);
|
||||
return firstInFlow;
|
||||
}
|
||||
@ -3568,7 +3566,6 @@ nsTextFrame::SetSelected(nsPresContext* aPresContext,
|
||||
PRBool aSelected,
|
||||
nsSpread aSpread)
|
||||
{
|
||||
nsresult result;
|
||||
if (aSelected && ParentDisablesSelection())
|
||||
return NS_OK;
|
||||
|
||||
@ -3685,20 +3682,15 @@ nsTextFrame::SetSelected(nsPresContext* aPresContext,
|
||||
}
|
||||
if (aSpread == eSpreadDown)
|
||||
{
|
||||
nsIFrame *frame;
|
||||
GetPrevInFlow(&frame);
|
||||
nsIFrame* frame = GetPrevInFlow();
|
||||
while(frame){
|
||||
frame->SetSelected(aPresContext, aRange,aSelected,eSpreadNone);
|
||||
result = frame->GetPrevInFlow(&frame);
|
||||
if (NS_FAILED(result))
|
||||
break;
|
||||
frame = frame->GetPrevInFlow();
|
||||
}
|
||||
GetNextInFlow(&frame);
|
||||
frame = GetNextInFlow();
|
||||
while (frame){
|
||||
frame->SetSelected(aPresContext, aRange,aSelected,eSpreadNone);
|
||||
result = frame->GetNextInFlow(&frame);
|
||||
if (NS_FAILED(result))
|
||||
break;
|
||||
frame = frame->GetNextInFlow();
|
||||
}
|
||||
#ifdef IBMBIDI
|
||||
if ((mState & NS_FRAME_IS_BIDI) &&
|
||||
@ -3831,7 +3823,6 @@ nsTextFrame::GetChildFrameContainingOffset(PRInt32 inContentOffset,
|
||||
{
|
||||
if (nsnull == outChildFrame)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
nsresult result;
|
||||
PRInt32 contentOffset = inContentOffset;
|
||||
|
||||
if (contentOffset != -1) //-1 signified the end of the current content
|
||||
@ -3840,8 +3831,7 @@ nsTextFrame::GetChildFrameContainingOffset(PRInt32 inContentOffset,
|
||||
if ((contentOffset > mContentLength) || ((contentOffset == mContentLength) && inHint) )
|
||||
{
|
||||
//this is not the frame we are looking for.
|
||||
nsIFrame *nextInFlow;
|
||||
GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = GetNextInFlow();
|
||||
if (nextInFlow)
|
||||
{
|
||||
return nextInFlow->GetChildFrameContainingOffset(inContentOffset, inHint, outFrameContentOffset, outChildFrame);
|
||||
@ -3873,12 +3863,12 @@ nsTextFrame::GetChildFrameContainingOffset(PRInt32 inContentOffset,
|
||||
|
||||
if (inContentOffset < mContentOffset) //could happen with floats!
|
||||
{
|
||||
result = GetPrevInFlow(outChildFrame);
|
||||
if (NS_SUCCEEDED(result) && *outChildFrame)
|
||||
*outChildFrame = GetPrevInFlow();
|
||||
if (*outChildFrame)
|
||||
return (*outChildFrame)->GetChildFrameContainingOffset(inContentOffset, inHint,
|
||||
outFrameContentOffset,outChildFrame);
|
||||
else
|
||||
return result;
|
||||
return NS_OK; //this can't be the right thing to do?
|
||||
}
|
||||
|
||||
*outFrameContentOffset = contentOffset;
|
||||
@ -3915,7 +3905,7 @@ nsTextFrame::PeekOffset(nsPresContext* aPresContext, nsPeekOffsetStruct *aPos)
|
||||
}
|
||||
else
|
||||
#endif
|
||||
GetNextInFlow(&nextInFlow);
|
||||
nextInFlow = GetNextInFlow();
|
||||
if (!nextInFlow){
|
||||
NS_ASSERTION(PR_FALSE,"nsTextFrame::PeekOffset no more flow \n");
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
@ -4040,7 +4030,7 @@ nsTextFrame::PeekOffset(nsPresContext* aPresContext, nsPeekOffsetStruct *aPos)
|
||||
|
||||
if (i <0){
|
||||
found = PR_FALSE;
|
||||
GetPrevInFlow(&frameUsed);
|
||||
frameUsed = GetPrevInFlow();
|
||||
start = mContentOffset;
|
||||
aPos->mContentOffset = start;//in case next call fails we stop at this offset
|
||||
}
|
||||
@ -4095,7 +4085,7 @@ nsTextFrame::PeekOffset(nsPresContext* aPresContext, nsPeekOffsetStruct *aPos)
|
||||
*/
|
||||
if (i > mContentLength){
|
||||
found = PR_FALSE;
|
||||
GetNextInFlow(&frameUsed);
|
||||
frameUsed = GetNextInFlow();
|
||||
start = mContentOffset + mContentLength;
|
||||
aPos->mContentOffset = start;//in case next call fails we stop at this offset
|
||||
}
|
||||
@ -4250,7 +4240,7 @@ nsTextFrame::PeekOffset(nsPresContext* aPresContext, nsPeekOffsetStruct *aPos)
|
||||
}
|
||||
|
||||
TryNextFrame:
|
||||
GetNextInFlow(&frameUsed);
|
||||
frameUsed = GetNextInFlow();
|
||||
start = 0;
|
||||
}
|
||||
}
|
||||
@ -4398,7 +4388,7 @@ nsTextFrame::CheckVisibility(nsPresContext* aContext, PRInt32 aStartIndex, PRInt
|
||||
rv = NS_OK;
|
||||
while (!aFinished && nextInFlow && NS_SUCCEEDED(rv) && !*_retval) //while we havent found anything visible
|
||||
{
|
||||
rv = nextInFlow->GetNextInFlow(&nextInFlow);
|
||||
nextInFlow = nextInFlow->GetNextInFlow();
|
||||
if (nextInFlow)
|
||||
{
|
||||
rv = nextInFlow->CheckVisibility(aContext,aStartIndex,aEndIndex,PR_FALSE,aFinished,_retval);
|
||||
@ -5186,9 +5176,7 @@ nsTextFrame::Reflow(nsPresContext* aPresContext,
|
||||
|
||||
// Get starting offset into the content
|
||||
PRInt32 startingOffset = 0;
|
||||
nsIFrame* prevInFlow;
|
||||
|
||||
GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = GetPrevInFlow();
|
||||
if (nsnull != prevInFlow) {
|
||||
nsTextFrame* prev = (nsTextFrame*)prevInFlow;
|
||||
startingOffset = prev->mContentOffset + prev->mContentLength;
|
||||
@ -5912,8 +5900,7 @@ nsTextFrame::List(nsPresContext* aPresContext, FILE* out, PRInt32 aIndent) const
|
||||
if (nsnull != mNextSibling) {
|
||||
fprintf(out, " next=%p", NS_STATIC_CAST(void*, mNextSibling));
|
||||
}
|
||||
nsIFrame* prevInFlow;
|
||||
GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = GetPrevInFlow();
|
||||
if (nsnull != prevInFlow) {
|
||||
fprintf(out, " prev-in-flow=%p", NS_STATIC_CAST(void*, prevInFlow));
|
||||
}
|
||||
|
@ -827,8 +827,7 @@ nsBlockFrame::Reflow(nsPresContext* aPresContext,
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "reflow dirty lines failed");
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
nsIFrame* nextInFlow;
|
||||
GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = GetNextInFlow();
|
||||
if (nextInFlow && NS_FRAME_IS_NOT_COMPLETE(state.mReflowStatus)) {
|
||||
if (GetOverflowLines() || GetOverflowPlaceholders()) {
|
||||
state.mReflowStatus |= NS_FRAME_REFLOW_NEXTINFLOW;
|
||||
@ -1243,7 +1242,7 @@ nsBlockFrame::ComputeFinalSize(const nsHTMLReflowState& aReflowState,
|
||||
if (mPrevInFlow) {
|
||||
// Reduce the height by the height of prev-in-flows. The last-in-flow will automatically
|
||||
// pick up the bottom border/padding, since it was part of the original aMetrics.height.
|
||||
for (nsIFrame* prev = mPrevInFlow; prev; prev->GetPrevInFlow(&prev)) {
|
||||
for (nsIFrame* prev = mPrevInFlow; prev; prev = prev->GetPrevInFlow()) {
|
||||
aMetrics.height -= prev->GetRect().height;
|
||||
// XXX: All block level next-in-flows have borderPadding.top applied to them (bug 174688).
|
||||
// The following should be removed when this gets fixed. bug 174688 prevents us from honoring
|
||||
@ -1461,8 +1460,7 @@ nsBlockFrame::PrepareChildIncrementalReflow(nsBlockReflowState& aState)
|
||||
// of the continuations. This will allow the incremental
|
||||
// reflow to arrive at the target frame during the first-pass
|
||||
// unconstrained reflow.
|
||||
nsIFrame *prevInFlow;
|
||||
(*iter)->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame *prevInFlow = (*iter)->GetPrevInFlow();
|
||||
if (prevInFlow)
|
||||
RetargetInlineIncrementalReflow(iter, line, prevInFlow);
|
||||
}
|
||||
@ -1507,7 +1505,7 @@ nsBlockFrame::RetargetInlineIncrementalReflow(nsReflowPath::iterator &aTarget,
|
||||
break;
|
||||
|
||||
*aTarget = aPrevInFlow;
|
||||
aPrevInFlow->GetPrevInFlow(&aPrevInFlow);
|
||||
aPrevInFlow = aPrevInFlow->GetPrevInFlow();
|
||||
|
||||
#ifdef DEBUG
|
||||
// Paranoia. Ensure that the prev-in-flow is really in the
|
||||
@ -1548,7 +1546,7 @@ nsBlockFrame::RetargetInlineIncrementalReflow(nsReflowPath::iterator &aTarget,
|
||||
PRInt32 count = lineCount;
|
||||
nsIFrame *prevInFlow;
|
||||
do {
|
||||
frame->GetPrevInFlow(&prevInFlow);
|
||||
prevInFlow = frame->GetPrevInFlow();
|
||||
} while (--count >= 0 && prevInFlow && (frame = prevInFlow));
|
||||
|
||||
path->ReplaceElementAt(frame, i);
|
||||
@ -2975,8 +2973,7 @@ nsBlockFrame::ReflowBlockFrame(nsBlockReflowState& aState,
|
||||
// apply its top margin because its not significant. Otherwise, dig
|
||||
// deeper.
|
||||
PRBool applyTopMargin = PR_FALSE;
|
||||
nsIFrame* framePrevInFlow;
|
||||
frame->GetPrevInFlow(&framePrevInFlow);
|
||||
nsIFrame* framePrevInFlow = frame->GetPrevInFlow();
|
||||
if (nsnull == framePrevInFlow) {
|
||||
applyTopMargin = ShouldApplyTopMargin(aState, aLine);
|
||||
}
|
||||
@ -4746,8 +4743,7 @@ nsBlockFrame::DoRemoveOutOfFlowFrame(nsPresContext* aPresContext,
|
||||
nsIFrame* aFrame)
|
||||
{
|
||||
// First remove aFrame's next in flow
|
||||
nsIFrame* nextInFlow;
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
if (nextInFlow) {
|
||||
nsBlockFrame::DoRemoveOutOfFlowFrame(aPresContext, nextInFlow);
|
||||
}
|
||||
@ -4890,8 +4886,7 @@ nsBlockFrame::DoRemoveFrame(nsPresContext* aPresContext,
|
||||
|
||||
// Destroy frame; capture its next-in-flow first in case we need
|
||||
// to destroy that too.
|
||||
nsIFrame* nextInFlow;
|
||||
aDeletedFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aDeletedFrame->GetNextInFlow();
|
||||
#ifdef NOISY_REMOVE_FRAME
|
||||
printf("DoRemoveFrame: line=%p frame=", line);
|
||||
nsFrame::ListTag(stdout, aDeletedFrame);
|
||||
@ -4973,8 +4968,7 @@ void
|
||||
nsBlockFrame::DeleteNextInFlowChild(nsPresContext* aPresContext,
|
||||
nsIFrame* aNextInFlow)
|
||||
{
|
||||
nsIFrame* prevInFlow;
|
||||
aNextInFlow->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aNextInFlow->GetPrevInFlow();
|
||||
NS_PRECONDITION(prevInFlow, "bad next-in-flow");
|
||||
NS_PRECONDITION(IsChild(aNextInFlow), "bad geometric parent");
|
||||
|
||||
@ -4997,8 +4991,7 @@ nsBlockFrame::ReflowFloat(nsBlockReflowState& aState,
|
||||
nsReflowStatus& aReflowStatus)
|
||||
{
|
||||
// Delete the placeholder's next in flows, if any
|
||||
nsIFrame* nextInFlow;
|
||||
aPlaceholder->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aPlaceholder->GetNextInFlow();
|
||||
if (nextInFlow) {
|
||||
// If aPlaceholder's parent is an inline, nextInFlow's will be a block.
|
||||
NS_STATIC_CAST(nsHTMLContainerFrame*, nextInFlow->GetParent())
|
||||
@ -5025,8 +5018,7 @@ nsBlockFrame::ReflowFloat(nsBlockReflowState& aState,
|
||||
else {
|
||||
const nsStyleDisplay* floatDisplay = floatFrame->GetStyleDisplay();
|
||||
|
||||
nsIFrame* prevInFlow;
|
||||
floatFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = floatFrame->GetPrevInFlow();
|
||||
// if the float is continued, constrain its width to the prev-in-flow's width
|
||||
if (prevInFlow) {
|
||||
availWidth = prevInFlow->GetRect().width;
|
||||
@ -5168,8 +5160,7 @@ nsBlockFrame::ReflowFloat(nsBlockReflowState& aState,
|
||||
// If the placeholder was continued and its first-in-flow was followed by a
|
||||
// <BR>, then cache the <BR>'s break type in aState.mFloatBreakType so that
|
||||
// the next frame after the placeholder can combine that break type with its own
|
||||
nsIFrame* prevPlaceholder = nsnull;
|
||||
aPlaceholder->GetPrevInFlow(&prevPlaceholder);
|
||||
nsIFrame* prevPlaceholder = aPlaceholder->GetPrevInFlow();
|
||||
if (prevPlaceholder) {
|
||||
// the break occurs only after the last continued placeholder
|
||||
PRBool lastPlaceholder = PR_TRUE;
|
||||
@ -6155,8 +6146,7 @@ nsBlockFrame::IsChild(nsIFrame* aFrame)
|
||||
// and placeholders don't satisfy InSiblingList().
|
||||
PRBool skipLineList = PR_FALSE;
|
||||
PRBool skipSiblingList = PR_FALSE;
|
||||
nsIFrame* prevInFlow;
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aFrame->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
nsFrameState state = aFrame->GetStateBits();
|
||||
skipLineList = (state & NS_FRAME_OUT_OF_FLOW);
|
||||
@ -6359,7 +6349,7 @@ nsBlockFrame::RenumberListsInBlock(nsPresContext* aPresContext,
|
||||
}
|
||||
|
||||
// Advance to the next continuation
|
||||
aBlockFrame->GetNextInFlow((nsIFrame**) &aBlockFrame);
|
||||
aBlockFrame = NS_STATIC_CAST(nsBlockFrame*, aBlockFrame->GetNextInFlow());
|
||||
}
|
||||
|
||||
return renumberedABullet;
|
||||
|
@ -617,8 +617,7 @@ nsBlockReflowContext::ReflowBlock(const nsRect& aSpace,
|
||||
// the frame is going to get reflowed again (and may end up wanting
|
||||
// a next-in-flow where it ends up), unless it is an out of flow frame.
|
||||
if (NS_FRAME_IS_COMPLETE(aFrameReflowStatus)) {
|
||||
nsIFrame* kidNextInFlow;
|
||||
mFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = mFrame->GetNextInFlow();
|
||||
if (nsnull != kidNextInFlow) {
|
||||
// Remove all of the childs next-in-flows. Make sure that we ask
|
||||
// the right parent to do the removal (it's possible that the
|
||||
|
@ -99,7 +99,7 @@ nsBlockReflowState::nsBlockReflowState(const nsHTMLReflowState& aReflowState,
|
||||
mReflowStatus = NS_FRAME_COMPLETE;
|
||||
|
||||
mPresContext = aPresContext;
|
||||
mBlock->GetNextInFlow(NS_REINTERPRET_CAST(nsIFrame**, &mNextInFlow));
|
||||
mNextInFlow = NS_STATIC_CAST(nsBlockFrame*, mBlock->GetNextInFlow());
|
||||
mKidXMost = 0;
|
||||
|
||||
// Compute content area width (the content area is inside the border
|
||||
@ -953,17 +953,15 @@ nsBlockReflowState::FlowAndPlaceFloat(nsFloatCache* aFloatCache,
|
||||
}
|
||||
// If the float is continued, it will get the same absolute x value as its prev-in-flow
|
||||
nsRect prevRect(0,0,0,0);
|
||||
nsIFrame* prevInFlow;
|
||||
floatFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = floatFrame->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
prevRect = prevInFlow->GetRect();
|
||||
|
||||
nsIFrame *placeParentPrev, *prevPlace;
|
||||
// If prevInFlow's placeholder is in a block that wasn't continued, we need to adjust
|
||||
// prevRect.x to account for the missing frame offsets.
|
||||
nsIFrame* placeParent = placeholder->GetParent();
|
||||
placeParent->GetPrevInFlow(&placeParentPrev);
|
||||
prevPlace =
|
||||
nsIFrame* placeParentPrev = placeParent->GetPrevInFlow();
|
||||
nsIFrame* prevPlace =
|
||||
mPresContext->FrameManager()->GetPlaceholderFrameFor(prevInFlow);
|
||||
|
||||
nsIFrame* prevPlaceParent = prevPlace->GetParent();
|
||||
|
@ -991,8 +991,7 @@ nsContainerFrame::ReflowChild(nsIFrame* aKidFrame,
|
||||
// If the reflow was successful and the child frame is complete, delete any
|
||||
// next-in-flows
|
||||
if (NS_SUCCEEDED(result) && NS_FRAME_IS_COMPLETE(aStatus)) {
|
||||
nsIFrame* kidNextInFlow;
|
||||
aKidFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = aKidFrame->GetNextInFlow();
|
||||
if (nsnull != kidNextInFlow) {
|
||||
// Remove all of the childs next-in-flows. Make sure that we ask
|
||||
// the right parent to do the removal (it's possible that the
|
||||
@ -1107,15 +1106,13 @@ void
|
||||
nsContainerFrame::DeleteNextInFlowChild(nsPresContext* aPresContext,
|
||||
nsIFrame* aNextInFlow)
|
||||
{
|
||||
nsIFrame* prevInFlow;
|
||||
aNextInFlow->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aNextInFlow->GetPrevInFlow();
|
||||
NS_PRECONDITION(prevInFlow, "bad prev-in-flow");
|
||||
NS_PRECONDITION(mFrames.ContainsFrame(aNextInFlow), "bad geometric parent");
|
||||
|
||||
// If the next-in-flow has a next-in-flow then delete it, too (and
|
||||
// delete it first).
|
||||
nsIFrame* nextNextInFlow;
|
||||
aNextInFlow->GetNextInFlow(&nextNextInFlow);
|
||||
nsIFrame* nextNextInFlow = aNextInFlow->GetNextInFlow();
|
||||
if (nextNextInFlow) {
|
||||
NS_STATIC_CAST(nsContainerFrame*, nextNextInFlow->GetParent())
|
||||
->DeleteNextInFlowChild(aPresContext, nextNextInFlow);
|
||||
@ -1153,11 +1150,7 @@ nsContainerFrame::DeleteNextInFlowChild(nsPresContext* aPresContext,
|
||||
// Delete the next-in-flow frame and its descendants.
|
||||
aNextInFlow->Destroy(aPresContext);
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
nsIFrame* nextInFlow;
|
||||
prevInFlow->GetNextInFlow(&nextInFlow);
|
||||
NS_POSTCONDITION(!nextInFlow, "non null next-in-flow");
|
||||
#endif
|
||||
NS_POSTCONDITION(!prevInFlow->GetNextInFlow(), "non null next-in-flow");
|
||||
}
|
||||
|
||||
nsIFrame*
|
||||
|
@ -292,8 +292,7 @@ nsFirstLetterFrame::Reflow(nsPresContext* aPresContext,
|
||||
// Create a continuation or remove existing continuations based on
|
||||
// the reflow completion status.
|
||||
if (NS_FRAME_IS_COMPLETE(aReflowStatus)) {
|
||||
nsIFrame* kidNextInFlow;
|
||||
kid->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = kid->GetNextInFlow();
|
||||
if (kidNextInFlow) {
|
||||
// Remove all of the childs next-in-flows
|
||||
NS_STATIC_CAST(nsContainerFrame*, kidNextInFlow->GetParent())
|
||||
|
@ -1221,9 +1221,8 @@ ContentContainsPoint(nsPresContext *aPresContext,
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
rv = frame->GetNextInFlow(&frame);
|
||||
frame = frame->GetNextInFlow();
|
||||
|
||||
if (NS_FAILED(rv)) return PR_FALSE;
|
||||
}
|
||||
|
||||
return PR_FALSE;
|
||||
@ -2100,8 +2099,7 @@ nsFrame::DidReflow(nsPresContext* aPresContext,
|
||||
aReflowState->mStylePosition && // percent height
|
||||
(eStyleUnit_Percent == aReflowState->mStylePosition->mHeight.GetUnit())) {
|
||||
|
||||
nsIFrame* prevInFlow;
|
||||
GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = GetPrevInFlow();
|
||||
if (!prevInFlow) { // 1st in flow
|
||||
aReflowState->mPercentHeightObserver->NotifyPercentHeight(*aReflowState);
|
||||
}
|
||||
@ -2181,10 +2179,9 @@ NS_IMETHODIMP nsFrame::IsSplittable(nsSplittableType& aIsSplittable) const
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsFrame::GetPrevInFlow(nsIFrame** aPrevInFlow) const
|
||||
nsIFrame* nsFrame::GetPrevInFlow() const
|
||||
{
|
||||
*aPrevInFlow = nsnull;
|
||||
return NS_OK;
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsFrame::SetPrevInFlow(nsIFrame* aPrevInFlow)
|
||||
@ -2198,10 +2195,9 @@ NS_IMETHODIMP nsFrame::SetPrevInFlow(nsIFrame* aPrevInFlow)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsFrame::GetNextInFlow(nsIFrame** aNextInFlow) const
|
||||
nsIFrame* nsFrame::GetNextInFlow() const
|
||||
{
|
||||
*aNextInFlow = nsnull;
|
||||
return NS_OK;
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsFrame::SetNextInFlow(nsIFrame*)
|
||||
@ -3042,10 +3038,10 @@ nsFrame::GetChildFrameContainingOffset(PRInt32 inContentOffset, PRBool inHint, P
|
||||
nsRect rect = GetRect();
|
||||
if (!rect.width || !rect.height)
|
||||
{
|
||||
nsIFrame *nextFlow = nsnull;
|
||||
//if we have a 0 width or height then lets look for another frame that possibly has
|
||||
//the same content. If we have no frames in flow then just let us return 'this' frame
|
||||
if (NS_SUCCEEDED(GetNextInFlow(&nextFlow)) && nextFlow)
|
||||
nsIFrame* nextFlow = GetNextInFlow();
|
||||
if (nextFlow)
|
||||
return nextFlow->GetChildFrameContainingOffset(inContentOffset, inHint, outFrameContentOffset, outChildFrame);
|
||||
}
|
||||
*outChildFrame = this;
|
||||
@ -5262,12 +5258,11 @@ static void DisplayReflowEnterPrint(nsPresContext* aPresContext,
|
||||
DR_state->PrettyUC(aReflowState.mComputedHeight, height);
|
||||
printf("c=%s,%s ", width, height);
|
||||
|
||||
nsIFrame* inFlow;
|
||||
aFrame->GetPrevInFlow(&inFlow);
|
||||
nsIFrame* inFlow = aFrame->GetPrevInFlow();
|
||||
if (inFlow) {
|
||||
printf("pif=%p ", (void*)inFlow);
|
||||
}
|
||||
aFrame->GetNextInFlow(&inFlow);
|
||||
inFlow = aFrame->GetNextInFlow();
|
||||
if (inFlow) {
|
||||
printf("nif=%p ", (void*)inFlow);
|
||||
}
|
||||
|
@ -232,9 +232,9 @@ public:
|
||||
nsIAtom* aAttribute,
|
||||
PRInt32 aModType);
|
||||
NS_IMETHOD IsSplittable(nsSplittableType& aIsSplittable) const;
|
||||
NS_IMETHOD GetPrevInFlow(nsIFrame** aPrevInFlow) const;
|
||||
virtual nsIFrame* GetPrevInFlow() const;
|
||||
NS_IMETHOD SetPrevInFlow(nsIFrame*);
|
||||
NS_IMETHOD GetNextInFlow(nsIFrame** aNextInFlow) const;
|
||||
virtual nsIFrame* GetNextInFlow() const;
|
||||
NS_IMETHOD SetNextInFlow(nsIFrame*);
|
||||
NS_IMETHOD GetOffsetFromView(nsPresContext* aPresContext, nsPoint& aOffset, nsIView** aView) const;
|
||||
NS_IMETHOD GetOriginToViewOffset(nsPresContext *aPresContext, nsPoint& aOffset, nsIView **aView) const;
|
||||
|
@ -1498,8 +1498,7 @@ nsFrameManager::ReResolveStyleContext(nsPresContext *aPresContext,
|
||||
localContent->IsContentOfType(nsIContent::eELEMENT)) {
|
||||
// Check for a new :before pseudo and an existing :before
|
||||
// frame, but only if the frame is the first-in-flow.
|
||||
nsIFrame* prevInFlow = nsnull;
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aFrame->GetPrevInFlow();
|
||||
if (!prevInFlow) {
|
||||
// Checking for a :before frame is cheaper than getting the
|
||||
// :before style context.
|
||||
@ -1524,8 +1523,7 @@ nsFrameManager::ReResolveStyleContext(nsPresContext *aPresContext,
|
||||
localContent->IsContentOfType(nsIContent::eELEMENT)) {
|
||||
// Check for new :after content, but only if the frame is the
|
||||
// first-in-flow.
|
||||
nsIFrame* nextInFlow = nsnull;
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
|
||||
if (!nextInFlow) {
|
||||
// Getting the :after frame is more expensive than getting the pseudo
|
||||
@ -1623,13 +1621,7 @@ nsFrameManager::ComputeStyleChangeFor(nsIFrame *aFrame,
|
||||
nsIFrame* frame = aFrame;
|
||||
nsIFrame* frame2 = aFrame;
|
||||
|
||||
#ifdef DEBUG
|
||||
{
|
||||
nsIFrame* prevInFlow;
|
||||
frame->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "must start with the first in flow");
|
||||
}
|
||||
#endif
|
||||
NS_ASSERTION(!frame->GetPrevInFlow(), "must start with the first in flow");
|
||||
|
||||
// We want to start with this frame and walk all its next-in-flows,
|
||||
// as well as all its special siblings and their next-in-flows,
|
||||
@ -1650,15 +1642,12 @@ nsFrameManager::ComputeStyleChangeFor(nsIFrame *aFrame,
|
||||
// If it's going to cause a framechange, then don't bother
|
||||
// with the continuations or special siblings since they'll be
|
||||
// clobbered by the frame reconstruct anyway.
|
||||
#ifdef NS_DEBUG
|
||||
nsIFrame* prevInFlow;
|
||||
frame->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "continuing frame had more severe impact than first-in-flow");
|
||||
#endif
|
||||
NS_ASSERTION(!frame->GetPrevInFlow(),
|
||||
"continuing frame had more severe impact than first-in-flow");
|
||||
return topLevelChange;
|
||||
}
|
||||
|
||||
frame->GetNextInFlow(&frame);
|
||||
frame = frame->GetNextInFlow();
|
||||
} while (frame);
|
||||
|
||||
// Might we have special siblings?
|
||||
|
@ -248,7 +248,7 @@ HasTextFrameDescendant(nsPresContext* aPresContext, nsIFrame* aParent)
|
||||
static PRBool
|
||||
HasTextFrameDescendantOrInFlow(nsPresContext* aPresContext, nsIFrame* aFrame)
|
||||
{
|
||||
for (nsIFrame *f = aFrame->GetFirstInFlow(); f; f->GetNextInFlow(&f)) {
|
||||
for (nsIFrame *f = aFrame->GetFirstInFlow(); f; f = f->GetNextInFlow()) {
|
||||
if (HasTextFrameDescendant(aPresContext, f))
|
||||
return PR_TRUE;
|
||||
}
|
||||
@ -311,8 +311,7 @@ nsHTMLContainerFrame::CreateNextInFlow(nsPresContext* aPresContext,
|
||||
{
|
||||
aNextInFlowResult = nsnull;
|
||||
|
||||
nsIFrame* nextInFlow;
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
if (nsnull == nextInFlow) {
|
||||
// Create a continuation frame for the child frame and insert it
|
||||
// into our lines child list.
|
||||
|
@ -1384,8 +1384,7 @@ CalcQuirkContainingBlockHeight(const nsHTMLReflowState& aReflowState)
|
||||
}
|
||||
}
|
||||
else if (nsLayoutAtoms::pageContentFrame == frameType) {
|
||||
nsIFrame* prevInFlow;
|
||||
rs->frame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = rs->frame->GetPrevInFlow();
|
||||
// only use the page content frame for a height basis if it is the first in flow
|
||||
if (prevInFlow)
|
||||
break;
|
||||
|
@ -933,7 +933,7 @@ nsImageFrame::GetContinuationOffset(nscoord* aWidth) const
|
||||
}
|
||||
|
||||
if (mPrevInFlow) {
|
||||
for (nsIFrame* prevInFlow = mPrevInFlow ; prevInFlow; prevInFlow->GetPrevInFlow(&prevInFlow)) {
|
||||
for (nsIFrame* prevInFlow = mPrevInFlow ; prevInFlow; prevInFlow = prevInFlow->GetPrevInFlow()) {
|
||||
nsRect rect = prevInFlow->GetRect();
|
||||
if (aWidth) {
|
||||
*aWidth = rect.width;
|
||||
@ -1019,12 +1019,7 @@ nsImageFrame::Reflow(nsPresContext* aPresContext,
|
||||
aMetrics.descent = 0;
|
||||
|
||||
if (aMetrics.mComputeMEW) {
|
||||
// If we have a percentage based width, then our MEW is 0
|
||||
if (eStyleUnit_Percent == aReflowState.mStylePosition->mWidth.GetUnit()) {
|
||||
aMetrics.mMaxElementWidth = 0;
|
||||
} else {
|
||||
aMetrics.mMaxElementWidth = aMetrics.width;
|
||||
}
|
||||
aMetrics.SetMEWToActualWidth(aReflowState.mStylePosition->mWidth.GetUnit());
|
||||
}
|
||||
|
||||
if (aMetrics.mFlags & NS_REFLOW_CALC_MAX_WIDTH) {
|
||||
|
@ -261,8 +261,7 @@ nsInlineFrame::RemoveFrame(nsPresContext* aPresContext,
|
||||
// When the parent is an inline frame we have a simple task - just
|
||||
// remove the frame from its parents list and generate a reflow
|
||||
// command.
|
||||
nsIFrame* oldFrameNextInFlow;
|
||||
aOldFrame->GetNextInFlow(&oldFrameNextInFlow);
|
||||
nsIFrame* oldFrameNextInFlow = aOldFrame->GetNextInFlow();
|
||||
parent->mFrames.DestroyFrame(aPresContext, aOldFrame);
|
||||
aOldFrame = oldFrameNextInFlow;
|
||||
if (aOldFrame) {
|
||||
@ -514,8 +513,7 @@ nsInlineFrame::ReflowFrames(nsPresContext* aPresContext,
|
||||
// its parent frame pointer, too. Otherwise, if we reflow frame and it's
|
||||
// complete we'll fail when deleting its next-in-flow which is no longer
|
||||
// needed. This scenario doesn't happen often, but it can happen
|
||||
nsIFrame* nextInFlow;
|
||||
frame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = frame->GetNextInFlow();
|
||||
while (nextInFlow) {
|
||||
// Since we only do lazy setting of parent pointers for the frame's
|
||||
// initial reflow, this frame can't have a next-in-flow. That means
|
||||
@ -523,7 +521,7 @@ nsInlineFrame::ReflowFrames(nsPresContext* aPresContext,
|
||||
// not, then something is wrong
|
||||
NS_ASSERTION(mFrames.ContainsFrame(nextInFlow), "unexpected flow");
|
||||
nextInFlow->SetParent(this);
|
||||
nextInFlow->GetNextInFlow(&nextInFlow);
|
||||
nextInFlow = nextInFlow->GetNextInFlow();
|
||||
}
|
||||
}
|
||||
rv = ReflowInlineFrame(aPresContext, aReflowState, irs, frame, aStatus);
|
||||
|
@ -230,8 +230,7 @@ PRBool nsLineLayout::AllocateDeque()
|
||||
inline PRBool
|
||||
HasPrevInFlow(nsIFrame *aFrame)
|
||||
{
|
||||
nsIFrame *prevInFlow;
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame *prevInFlow = aFrame->GetPrevInFlow();
|
||||
return prevInFlow != nsnull;
|
||||
}
|
||||
|
||||
@ -1151,8 +1150,7 @@ nsLineLayout::ReflowFrame(nsIFrame* aFrame,
|
||||
// the frame is going to get reflowed again (and may end up wanting
|
||||
// a next-in-flow where it ends up).
|
||||
if (NS_FRAME_IS_COMPLETE(aReflowStatus)) {
|
||||
nsIFrame* kidNextInFlow;
|
||||
aFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = aFrame->GetNextInFlow();
|
||||
if (nsnull != kidNextInFlow) {
|
||||
// Remove all of the childs next-in-flows. Make sure that we ask
|
||||
// the right parent to do the removal (it's possible that the
|
||||
@ -1203,8 +1201,7 @@ nsLineLayout::ReflowFrame(nsIFrame* aFrame,
|
||||
PRInt32 newEnd;
|
||||
aFrame->GetOffsets(start, newEnd);
|
||||
if (newEnd != end) {
|
||||
nsIFrame* nextInFlow;
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
if (nextInFlow) {
|
||||
nextInFlow->GetOffsets(start, end);
|
||||
nextInFlow->AdjustOffsetsForBidi(newEnd, end);
|
||||
@ -1387,11 +1384,9 @@ nsLineLayout::CanPlaceFrame(PerFrameData* pfd,
|
||||
// If this is a piece of text inside a letter frame...
|
||||
if (pfd->GetFlag(PFD_ISNONEMPTYTEXTFRAME)) {
|
||||
if (psd->mFrame && psd->mFrame->GetFlag(PFD_ISLETTERFRAME)) {
|
||||
nsIFrame* prevInFlow;
|
||||
psd->mFrame->mFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = psd->mFrame->mFrame->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
nsIFrame* prevPrevInFlow;
|
||||
prevInFlow->GetPrevInFlow(&prevPrevInFlow);
|
||||
nsIFrame* prevPrevInFlow = prevInFlow->GetPrevInFlow();
|
||||
if (!prevPrevInFlow) {
|
||||
// And it's the first continuation of the letter frame...
|
||||
// Then make sure that the text fits
|
||||
@ -1402,11 +1397,9 @@ nsLineLayout::CanPlaceFrame(PerFrameData* pfd,
|
||||
}
|
||||
else if (pfd->GetFlag(PFD_ISLETTERFRAME)) {
|
||||
// If this is the first continuation of the letter frame...
|
||||
nsIFrame* prevInFlow;
|
||||
pfd->mFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = pfd->mFrame->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
nsIFrame* prevPrevInFlow;
|
||||
prevInFlow->GetPrevInFlow(&prevPrevInFlow);
|
||||
nsIFrame* prevPrevInFlow = prevInFlow->GetPrevInFlow();
|
||||
if (!prevPrevInFlow) {
|
||||
return PR_TRUE;
|
||||
}
|
||||
@ -1929,10 +1922,8 @@ nsLineLayout::VerticalAlignFrames(PerSpanData* psd)
|
||||
// - it has a prev-in-flow
|
||||
// - it has no next in flow
|
||||
// - it's zero sized
|
||||
nsIFrame* spanNextInFlow;
|
||||
spanFrame->GetNextInFlow(&spanNextInFlow);
|
||||
nsIFrame* spanPrevInFlow;
|
||||
spanFrame->GetPrevInFlow(&spanPrevInFlow);
|
||||
nsIFrame* spanNextInFlow = spanFrame->GetNextInFlow();
|
||||
nsIFrame* spanPrevInFlow = spanFrame->GetPrevInFlow();
|
||||
PRBool emptyContinuation = spanPrevInFlow && !spanNextInFlow &&
|
||||
(0 == spanFramePFD->mBounds.width) && (0 == spanFramePFD->mBounds.height);
|
||||
|
||||
|
@ -117,15 +117,8 @@ NS_IMETHODIMP nsPageContentFrame::Reflow(nsPresContext* aPresContext,
|
||||
// Place and size the child
|
||||
FinishReflowChild(frame, aPresContext, &kidReflowState, aDesiredSize, 0, 0, 0);
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
// Is the frame complete?
|
||||
if (NS_FRAME_IS_COMPLETE(aStatus)) {
|
||||
nsIFrame* childNextInFlow;
|
||||
|
||||
frame->GetNextInFlow(&childNextInFlow);
|
||||
NS_ASSERTION(nsnull == childNextInFlow, "bad child flow list");
|
||||
}
|
||||
#endif
|
||||
NS_ASSERTION(!NS_FRAME_IS_COMPLETE(aStatus) ||
|
||||
!frame->GetNextInFlow(), "bad child flow list");
|
||||
|
||||
#ifdef DEBUG_PRINTING
|
||||
nsRect r = frame->GetRect();
|
||||
|
@ -221,15 +221,8 @@ NS_IMETHODIMP nsPageFrame::Reflow(nsPresContext* aPresContext,
|
||||
view->GetViewManager()->SetViewChildClipRegion(view, ®ion);
|
||||
}
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
// Is the frame complete?
|
||||
if (NS_FRAME_IS_COMPLETE(aStatus)) {
|
||||
nsIFrame* childNextInFlow;
|
||||
|
||||
frame->GetNextInFlow(&childNextInFlow);
|
||||
NS_ASSERTION(nsnull == childNextInFlow, "bad child flow list");
|
||||
}
|
||||
#endif
|
||||
NS_ASSERTION(!NS_FRAME_IS_COMPLETE(aStatus) ||
|
||||
!frame->GetNextInFlow(), "bad child flow list");
|
||||
}
|
||||
PR_PL(("PageFrame::Reflow %p ", this));
|
||||
PR_PL(("[%d,%d][%d,%d]\n", aDesiredSize.width, aDesiredSize.height, aReflowState.availableWidth, aReflowState.availableHeight));
|
||||
|
@ -428,8 +428,7 @@ nsSimplePageSequenceFrame::Reflow(nsPresContext* aPresContext,
|
||||
y += deadSpaceGap;
|
||||
|
||||
// Is the page complete?
|
||||
nsIFrame* kidNextInFlow;
|
||||
kidFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = kidFrame->GetNextInFlow();
|
||||
|
||||
if (NS_FRAME_IS_COMPLETE(status)) {
|
||||
NS_ASSERTION(nsnull == kidNextInFlow, "bad child flow list");
|
||||
|
@ -78,10 +78,9 @@ nsSplittableFrame::IsSplittable(nsSplittableType& aIsSplittable) const
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD nsSplittableFrame::GetPrevInFlow(nsIFrame** aPrevInFlow) const
|
||||
nsIFrame* nsSplittableFrame::GetPrevInFlow() const
|
||||
{
|
||||
*aPrevInFlow = mPrevInFlow;
|
||||
return NS_OK;
|
||||
return mPrevInFlow;
|
||||
}
|
||||
|
||||
NS_METHOD nsSplittableFrame::SetPrevInFlow(nsIFrame* aFrame)
|
||||
@ -90,10 +89,9 @@ NS_METHOD nsSplittableFrame::SetPrevInFlow(nsIFrame* aFrame)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD nsSplittableFrame::GetNextInFlow(nsIFrame** aNextInFlow) const
|
||||
nsIFrame* nsSplittableFrame::GetNextInFlow() const
|
||||
{
|
||||
*aNextInFlow = mNextInFlow;
|
||||
return NS_OK;
|
||||
return mNextInFlow;
|
||||
}
|
||||
|
||||
NS_METHOD nsSplittableFrame::SetNextInFlow(nsIFrame* aFrame)
|
||||
@ -126,11 +124,8 @@ nsIFrame* nsSplittableFrame::GetLastInFlow() const
|
||||
void
|
||||
nsSplittableFrame::RemoveFromFlow(nsIFrame* aFrame)
|
||||
{
|
||||
nsIFrame* prevInFlow;
|
||||
nsIFrame* nextInFlow;
|
||||
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* prevInFlow = aFrame->GetPrevInFlow();
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
|
||||
if (prevInFlow) {
|
||||
prevInFlow->SetNextInFlow(nextInFlow);
|
||||
@ -148,25 +143,13 @@ nsSplittableFrame::RemoveFromFlow(nsIFrame* aFrame)
|
||||
void
|
||||
nsSplittableFrame::BreakFromPrevFlow(nsIFrame* aFrame)
|
||||
{
|
||||
nsIFrame* prevInFlow;
|
||||
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aFrame->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
prevInFlow->SetNextInFlow(nsnull);
|
||||
aFrame->SetPrevInFlow(nsnull);
|
||||
}
|
||||
}
|
||||
|
||||
nsIFrame * nsSplittableFrame::GetPrevInFlow()
|
||||
{
|
||||
return mPrevInFlow;
|
||||
}
|
||||
|
||||
nsIFrame * nsSplittableFrame::GetNextInFlow()
|
||||
{
|
||||
return mNextInFlow;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
void
|
||||
nsSplittableFrame::DumpBaseRegressionData(nsPresContext* aPresContext, FILE* out, PRInt32 aIndent, PRBool aIncludeStyleData)
|
||||
|
@ -54,9 +54,9 @@ public:
|
||||
NS_IMETHOD Destroy(nsPresContext* aPresContext);
|
||||
|
||||
// Flow member functions.
|
||||
NS_IMETHOD GetPrevInFlow(nsIFrame** aPrevInFlow) const;
|
||||
virtual nsIFrame* GetPrevInFlow() const;
|
||||
NS_IMETHOD SetPrevInFlow(nsIFrame*);
|
||||
NS_IMETHOD GetNextInFlow(nsIFrame** aNextInFlow) const;
|
||||
virtual nsIFrame* GetNextInFlow() const;
|
||||
NS_IMETHOD SetNextInFlow(nsIFrame*);
|
||||
|
||||
/**
|
||||
@ -76,9 +76,6 @@ public:
|
||||
// Detach from previous frame in flow
|
||||
static void BreakFromPrevFlow(nsIFrame* aFrame);
|
||||
|
||||
nsIFrame* GetPrevInFlow();
|
||||
nsIFrame* GetNextInFlow();
|
||||
|
||||
protected:
|
||||
#ifdef DEBUG
|
||||
virtual void DumpBaseRegressionData(nsPresContext* aPresContext, FILE* out, PRInt32 aIndent, PRBool aIncludeStyleData);
|
||||
|
@ -404,9 +404,8 @@ public:
|
||||
nsIContent* aChild,
|
||||
PRBool aAppend);
|
||||
|
||||
NS_IMETHOD GetNextInFlow(nsIFrame** aNextInFlow) const {
|
||||
*aNextInFlow = mNextInFlow;
|
||||
return NS_OK;
|
||||
virtual nsIFrame* GetNextInFlow() const {
|
||||
return mNextInFlow;
|
||||
}
|
||||
NS_IMETHOD SetNextInFlow(nsIFrame* aNextInFlow) {
|
||||
mNextInFlow = aNextInFlow;
|
||||
@ -843,9 +842,8 @@ public:
|
||||
|
||||
NS_IMETHOD Destroy(nsPresContext* aPresContext);
|
||||
|
||||
NS_IMETHOD GetPrevInFlow(nsIFrame** aPrevInFlow) const {
|
||||
*aPrevInFlow = mPrevInFlow;
|
||||
return NS_OK;
|
||||
virtual nsIFrame* GetPrevInFlow() const {
|
||||
return mPrevInFlow;
|
||||
}
|
||||
NS_IMETHOD SetPrevInFlow(nsIFrame* aPrevInFlow) {
|
||||
mPrevInFlow = aPrevInFlow;
|
||||
@ -925,7 +923,7 @@ nsContinuingTextFrame::GetFirstInFlow() const
|
||||
NS_STATIC_CAST(const nsIFrame*, this));
|
||||
do {
|
||||
firstInFlow = previous;
|
||||
firstInFlow->GetPrevInFlow(&previous);
|
||||
previous = firstInFlow->GetPrevInFlow();
|
||||
} while (previous);
|
||||
return firstInFlow;
|
||||
}
|
||||
@ -3568,7 +3566,6 @@ nsTextFrame::SetSelected(nsPresContext* aPresContext,
|
||||
PRBool aSelected,
|
||||
nsSpread aSpread)
|
||||
{
|
||||
nsresult result;
|
||||
if (aSelected && ParentDisablesSelection())
|
||||
return NS_OK;
|
||||
|
||||
@ -3685,20 +3682,15 @@ nsTextFrame::SetSelected(nsPresContext* aPresContext,
|
||||
}
|
||||
if (aSpread == eSpreadDown)
|
||||
{
|
||||
nsIFrame *frame;
|
||||
GetPrevInFlow(&frame);
|
||||
nsIFrame* frame = GetPrevInFlow();
|
||||
while(frame){
|
||||
frame->SetSelected(aPresContext, aRange,aSelected,eSpreadNone);
|
||||
result = frame->GetPrevInFlow(&frame);
|
||||
if (NS_FAILED(result))
|
||||
break;
|
||||
frame = frame->GetPrevInFlow();
|
||||
}
|
||||
GetNextInFlow(&frame);
|
||||
frame = GetNextInFlow();
|
||||
while (frame){
|
||||
frame->SetSelected(aPresContext, aRange,aSelected,eSpreadNone);
|
||||
result = frame->GetNextInFlow(&frame);
|
||||
if (NS_FAILED(result))
|
||||
break;
|
||||
frame = frame->GetNextInFlow();
|
||||
}
|
||||
#ifdef IBMBIDI
|
||||
if ((mState & NS_FRAME_IS_BIDI) &&
|
||||
@ -3831,7 +3823,6 @@ nsTextFrame::GetChildFrameContainingOffset(PRInt32 inContentOffset,
|
||||
{
|
||||
if (nsnull == outChildFrame)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
nsresult result;
|
||||
PRInt32 contentOffset = inContentOffset;
|
||||
|
||||
if (contentOffset != -1) //-1 signified the end of the current content
|
||||
@ -3840,8 +3831,7 @@ nsTextFrame::GetChildFrameContainingOffset(PRInt32 inContentOffset,
|
||||
if ((contentOffset > mContentLength) || ((contentOffset == mContentLength) && inHint) )
|
||||
{
|
||||
//this is not the frame we are looking for.
|
||||
nsIFrame *nextInFlow;
|
||||
GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = GetNextInFlow();
|
||||
if (nextInFlow)
|
||||
{
|
||||
return nextInFlow->GetChildFrameContainingOffset(inContentOffset, inHint, outFrameContentOffset, outChildFrame);
|
||||
@ -3873,12 +3863,12 @@ nsTextFrame::GetChildFrameContainingOffset(PRInt32 inContentOffset,
|
||||
|
||||
if (inContentOffset < mContentOffset) //could happen with floats!
|
||||
{
|
||||
result = GetPrevInFlow(outChildFrame);
|
||||
if (NS_SUCCEEDED(result) && *outChildFrame)
|
||||
*outChildFrame = GetPrevInFlow();
|
||||
if (*outChildFrame)
|
||||
return (*outChildFrame)->GetChildFrameContainingOffset(inContentOffset, inHint,
|
||||
outFrameContentOffset,outChildFrame);
|
||||
else
|
||||
return result;
|
||||
return NS_OK; //this can't be the right thing to do?
|
||||
}
|
||||
|
||||
*outFrameContentOffset = contentOffset;
|
||||
@ -3915,7 +3905,7 @@ nsTextFrame::PeekOffset(nsPresContext* aPresContext, nsPeekOffsetStruct *aPos)
|
||||
}
|
||||
else
|
||||
#endif
|
||||
GetNextInFlow(&nextInFlow);
|
||||
nextInFlow = GetNextInFlow();
|
||||
if (!nextInFlow){
|
||||
NS_ASSERTION(PR_FALSE,"nsTextFrame::PeekOffset no more flow \n");
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
@ -4040,7 +4030,7 @@ nsTextFrame::PeekOffset(nsPresContext* aPresContext, nsPeekOffsetStruct *aPos)
|
||||
|
||||
if (i <0){
|
||||
found = PR_FALSE;
|
||||
GetPrevInFlow(&frameUsed);
|
||||
frameUsed = GetPrevInFlow();
|
||||
start = mContentOffset;
|
||||
aPos->mContentOffset = start;//in case next call fails we stop at this offset
|
||||
}
|
||||
@ -4095,7 +4085,7 @@ nsTextFrame::PeekOffset(nsPresContext* aPresContext, nsPeekOffsetStruct *aPos)
|
||||
*/
|
||||
if (i > mContentLength){
|
||||
found = PR_FALSE;
|
||||
GetNextInFlow(&frameUsed);
|
||||
frameUsed = GetNextInFlow();
|
||||
start = mContentOffset + mContentLength;
|
||||
aPos->mContentOffset = start;//in case next call fails we stop at this offset
|
||||
}
|
||||
@ -4250,7 +4240,7 @@ nsTextFrame::PeekOffset(nsPresContext* aPresContext, nsPeekOffsetStruct *aPos)
|
||||
}
|
||||
|
||||
TryNextFrame:
|
||||
GetNextInFlow(&frameUsed);
|
||||
frameUsed = GetNextInFlow();
|
||||
start = 0;
|
||||
}
|
||||
}
|
||||
@ -4398,7 +4388,7 @@ nsTextFrame::CheckVisibility(nsPresContext* aContext, PRInt32 aStartIndex, PRInt
|
||||
rv = NS_OK;
|
||||
while (!aFinished && nextInFlow && NS_SUCCEEDED(rv) && !*_retval) //while we havent found anything visible
|
||||
{
|
||||
rv = nextInFlow->GetNextInFlow(&nextInFlow);
|
||||
nextInFlow = nextInFlow->GetNextInFlow();
|
||||
if (nextInFlow)
|
||||
{
|
||||
rv = nextInFlow->CheckVisibility(aContext,aStartIndex,aEndIndex,PR_FALSE,aFinished,_retval);
|
||||
@ -5186,9 +5176,7 @@ nsTextFrame::Reflow(nsPresContext* aPresContext,
|
||||
|
||||
// Get starting offset into the content
|
||||
PRInt32 startingOffset = 0;
|
||||
nsIFrame* prevInFlow;
|
||||
|
||||
GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = GetPrevInFlow();
|
||||
if (nsnull != prevInFlow) {
|
||||
nsTextFrame* prev = (nsTextFrame*)prevInFlow;
|
||||
startingOffset = prev->mContentOffset + prev->mContentLength;
|
||||
@ -5912,8 +5900,7 @@ nsTextFrame::List(nsPresContext* aPresContext, FILE* out, PRInt32 aIndent) const
|
||||
if (nsnull != mNextSibling) {
|
||||
fprintf(out, " next=%p", NS_STATIC_CAST(void*, mNextSibling));
|
||||
}
|
||||
nsIFrame* prevInFlow;
|
||||
GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = GetPrevInFlow();
|
||||
if (nsnull != prevInFlow) {
|
||||
fprintf(out, " prev-in-flow=%p", NS_STATIC_CAST(void*, prevInFlow));
|
||||
}
|
||||
|
@ -450,8 +450,7 @@ GetLastSpecialSibling(nsFrameManager* aFrameManager, nsIFrame* aFrame)
|
||||
static nsIFrame*
|
||||
GetNifOrSpecialSibling(nsFrameManager *aFrameManager, nsIFrame *aFrame)
|
||||
{
|
||||
nsIFrame *result;
|
||||
aFrame->GetNextInFlow(&result);
|
||||
nsIFrame *result = aFrame->GetNextInFlow();
|
||||
if (result)
|
||||
return result;
|
||||
|
||||
@ -466,17 +465,14 @@ SetFrameIsSpecial(nsFrameManager* aFrameManager, nsIFrame* aFrame, nsIFrame* aSp
|
||||
NS_PRECONDITION(aFrameManager && aFrame, "bad args!");
|
||||
|
||||
// Mark the frame and all of its siblings as "special".
|
||||
for (nsIFrame* frame = aFrame; frame != nsnull; frame->GetNextInFlow(&frame)) {
|
||||
for (nsIFrame* frame = aFrame; frame != nsnull; frame = frame->GetNextInFlow()) {
|
||||
frame->AddStateBits(NS_FRAME_IS_SPECIAL);
|
||||
}
|
||||
|
||||
if (aSpecialSibling) {
|
||||
#ifdef DEBUG
|
||||
// We should be the first-in-flow
|
||||
nsIFrame* prev;
|
||||
aFrame->GetPrevInFlow(&prev);
|
||||
NS_ASSERTION(! prev, "assigning special sibling to other than first-in-flow!");
|
||||
#endif
|
||||
NS_ASSERTION(!aFrame->GetPrevInFlow(),
|
||||
"assigning special sibling to other than first-in-flow!");
|
||||
|
||||
// Store the "special sibling" (if we were given one) with the
|
||||
// first frame in the flow.
|
||||
@ -7810,12 +7806,9 @@ FindNextAnonymousSibling(nsIPresShell* aPresShell,
|
||||
nsIFrame* nextSibling;
|
||||
aPresShell->GetPrimaryFrameFor(child, &nextSibling);
|
||||
if (nextSibling) {
|
||||
#ifdef DEBUG
|
||||
// The primary frame should never be a continuation
|
||||
nsIFrame* prevInFlow;
|
||||
nextSibling->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "primary frame is a continuation!?");
|
||||
#endif
|
||||
NS_ASSERTION(!nextSibling->GetPrevInFlow(),
|
||||
"primary frame is a continuation!?");
|
||||
|
||||
// If the frame is out-of-flow, GPFF() will have returned the
|
||||
// out-of-flow frame; we want the placeholder.
|
||||
@ -7996,12 +7989,9 @@ nsCSSFrameConstructor::FindNextSibling(nsIPresShell* aPresShell,
|
||||
aPresShell->GetPrimaryFrameFor(nsCOMPtr<nsIContent>(*iter), &nextSibling);
|
||||
|
||||
if (nextSibling) {
|
||||
#ifdef DEBUG
|
||||
// The frame primary frame should never be a continuation
|
||||
nsIFrame* prevInFlow;
|
||||
nextSibling->GetPrevInFlow(&prevInFlow);
|
||||
NS_ASSERTION(!prevInFlow, "primary frame is a continuation!?");
|
||||
#endif
|
||||
NS_ASSERTION(!nextSibling->GetPrevInFlow(),
|
||||
"primary frame is a continuation!?");
|
||||
|
||||
// If the frame is out-of-flow, GPFF() will have returned the
|
||||
// out-of-flow frame; we want the placeholder.
|
||||
@ -9298,7 +9288,7 @@ DeletingFrameSubtree(nsPresContext* aPresContext,
|
||||
// recursing over a subtree, because those continuing frames should be
|
||||
// found as part of the walk over the top-most frame's continuing frames.
|
||||
// Walking them again will make this an N^2/2 algorithm
|
||||
aFrame->GetNextInFlow(&aFrame);
|
||||
aFrame = aFrame->GetNextInFlow();
|
||||
} while (aFrame);
|
||||
|
||||
// Now destroy any frames that have been enqueued for destruction.
|
||||
@ -10691,8 +10681,7 @@ nsCSSFrameConstructor::CreateContinuingTableFrame(nsIPresShell* aPresShell,
|
||||
if ((NS_STYLE_DISPLAY_TABLE_HEADER_GROUP == display->mDisplay) ||
|
||||
(NS_STYLE_DISPLAY_TABLE_FOOTER_GROUP == display->mDisplay)) {
|
||||
// If the row group has was continued, then don't replicate it
|
||||
nsIFrame* rgNextInFlow;
|
||||
rowGroupFrame->GetNextInFlow(&rgNextInFlow);
|
||||
nsIFrame* rgNextInFlow = rowGroupFrame->GetNextInFlow();
|
||||
if (rgNextInFlow) {
|
||||
((nsTableRowGroupFrame*)rowGroupFrame)->SetRepeatable(PR_FALSE);
|
||||
}
|
||||
@ -10746,9 +10735,7 @@ nsCSSFrameConstructor::CreateContinuingFrame(nsPresContext* aPresContext,
|
||||
nsStyleContext* styleContext = aFrame->GetStyleContext();
|
||||
nsIFrame* newFrame = nsnull;
|
||||
nsresult rv = NS_OK;
|
||||
nsIFrame* nextInFlow = nsnull;
|
||||
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
|
||||
// Use the frame type to determine what type of frame to create
|
||||
nsIAtom* frameType = aFrame->GetType();
|
||||
@ -10944,8 +10931,7 @@ nsCSSFrameConstructor::CreateContinuingFrame(nsPresContext* aPresContext,
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
nsIFrame* prevPage;
|
||||
pageFrame->GetPrevInFlow(&prevPage);
|
||||
nsIFrame* prevPage = pageFrame->GetPrevInFlow();
|
||||
if (!prevPage) {
|
||||
return NS_OK;
|
||||
}
|
||||
@ -11877,8 +11863,7 @@ nsCSSFrameConstructor::InsertFirstLineFrames(
|
||||
// need to be pulled out of the line-frame and become children
|
||||
// of the block.
|
||||
nsIFrame* nextSibling = aPrevSibling->GetNextSibling();
|
||||
nsIFrame* nextLineFrame;
|
||||
prevSiblingParent->GetNextInFlow(&nextLineFrame);
|
||||
nsIFrame* nextLineFrame = prevSiblingParent->GetNextInFlow();
|
||||
if (nextSibling || nextLineFrame) {
|
||||
// Oy. We have work to do. Create a list of the new frames
|
||||
// that are going into the block by stripping them away from
|
||||
@ -11891,7 +11876,7 @@ nsCSSFrameConstructor::InsertFirstLineFrames(
|
||||
|
||||
nsLineFrame* nextLineFrame = (nsLineFrame*) lineFrame;
|
||||
for (;;) {
|
||||
nextLineFrame->GetNextInFlow(&nextLineFrame);
|
||||
nextLineFrame = nextLineFrame->GetNextInFlow();
|
||||
if (!nextLineFrame) {
|
||||
break;
|
||||
}
|
||||
@ -12324,8 +12309,7 @@ nsCSSFrameConstructor::RemoveFloatingFirstLetterFrames(
|
||||
|
||||
// Destroy the old text frame's continuations (the old text frame
|
||||
// will be destroyed when its letter frame is destroyed).
|
||||
nsIFrame* nextTextFrame;
|
||||
textFrame->GetNextInFlow(&nextTextFrame);
|
||||
nsIFrame* nextTextFrame = textFrame->GetNextInFlow();
|
||||
if (nextTextFrame) {
|
||||
nsIFrame* nextTextParent = nextTextFrame->GetParent();
|
||||
if (nextTextParent) {
|
||||
@ -13268,8 +13252,7 @@ nsCSSFrameConstructor::SplitToContainingBlock(nsPresContext* aPresContext,
|
||||
|
||||
// If we have a continuation frame, then we need to break the
|
||||
// continuation.
|
||||
nsIFrame* nextInFlow;
|
||||
aFrame->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aFrame->GetNextInFlow();
|
||||
if (nextInFlow) {
|
||||
aFrame->SetNextInFlow(nsnull);
|
||||
nextInFlow->SetPrevInFlow(nsnull);
|
||||
|
@ -145,8 +145,7 @@ protected:
|
||||
{
|
||||
NS_PRECONDITION(aFrame, "Need a frame");
|
||||
|
||||
nsIFrame *prevInFlow = nsnull;
|
||||
aFrame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame *prevInFlow = aFrame->GetPrevInFlow();
|
||||
|
||||
if (!prevInFlow || mFrame != prevInFlow) {
|
||||
// Ok, we've got the wrong frame. We have to start from scratch.
|
||||
@ -163,18 +162,17 @@ protected:
|
||||
}
|
||||
|
||||
void Init(nsIFrame* aFrame)
|
||||
{
|
||||
nsIFrame* inlineFrame;
|
||||
{
|
||||
// Start with the previous flow frame as our continuation point
|
||||
// is the total of the widths of the previous frames.
|
||||
aFrame->GetPrevInFlow(&inlineFrame);
|
||||
nsIFrame* inlineFrame = aFrame->GetPrevInFlow();
|
||||
|
||||
while (inlineFrame) {
|
||||
nsRect rect = inlineFrame->GetRect();
|
||||
mContinuationPoint += rect.width;
|
||||
mUnbrokenWidth += rect.width;
|
||||
mBoundingBox.UnionRect(mBoundingBox, rect);
|
||||
inlineFrame->GetPrevInFlow(&inlineFrame);
|
||||
inlineFrame = inlineFrame->GetPrevInFlow();
|
||||
}
|
||||
|
||||
// Next add this frame and subsequent frames to the bounding box and
|
||||
@ -184,7 +182,7 @@ protected:
|
||||
nsRect rect = inlineFrame->GetRect();
|
||||
mUnbrokenWidth += rect.width;
|
||||
mBoundingBox.UnionRect(mBoundingBox, rect);
|
||||
inlineFrame->GetNextInFlow(&inlineFrame);
|
||||
inlineFrame = inlineFrame->GetNextInFlow();
|
||||
}
|
||||
|
||||
mFrame = aFrame;
|
||||
|
@ -122,8 +122,7 @@ GetNextChildFrame(nsPresContext* aPresContext, nsIFrame* aFrame)
|
||||
// If there's no next sibling, then check if the parent frame
|
||||
// has a next-in-flow and look there
|
||||
if (!nextSibling) {
|
||||
nsIFrame* parent;
|
||||
aFrame->GetParent()->GetNextInFlow(&parent);
|
||||
nsIFrame* parent = aFrame->GetParent()->GetNextInFlow();
|
||||
|
||||
if (parent) {
|
||||
nextSibling = parent->GetFirstChild(nsnull);
|
||||
@ -184,7 +183,7 @@ GetPrevChildFrame(nsPresContext* aPresContext, nsIFrame* aFrame)
|
||||
// If there's no previous sibling, then check if the parent frame
|
||||
// has a prev-in-flow and look there
|
||||
if (!prevSibling) {
|
||||
parent->GetPrevInFlow(&parent);
|
||||
parent = parent->GetPrevInFlow();
|
||||
|
||||
if (parent) {
|
||||
firstChild = parent->GetFirstChild(nsnull);
|
||||
@ -195,8 +194,7 @@ GetPrevChildFrame(nsPresContext* aPresContext, nsIFrame* aFrame)
|
||||
|
||||
// Get the first-in-flow
|
||||
while (PR_TRUE) {
|
||||
nsIFrame* prevInFlow;
|
||||
prevSibling->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = prevSibling->GetPrevInFlow();
|
||||
if (prevInFlow) {
|
||||
prevSibling = prevInFlow;
|
||||
} else {
|
||||
|
@ -170,11 +170,8 @@ PRBool BasicTableLayoutStrategy::Initialize(const nsHTMLReflowState& aReflowStat
|
||||
|
||||
void BasicTableLayoutStrategy::ContinuingFrameCheck()
|
||||
{
|
||||
#ifdef NS_DEBUG
|
||||
nsIFrame* tablePIF = nsnull;
|
||||
mTableFrame->GetPrevInFlow(&tablePIF);
|
||||
NS_ASSERTION(!tablePIF, "never ever call me on a continuing frame!");
|
||||
#endif
|
||||
NS_ASSERTION(!mTableFrame->GetPrevInFlow(),
|
||||
"never ever call me on a continuing frame!");
|
||||
}
|
||||
|
||||
PRBool BCW_Wrapup(const nsHTMLReflowState& aReflowState,
|
||||
|
@ -1723,8 +1723,7 @@ void
|
||||
nsTableFrame::CheckRequestSpecialHeightReflow(const nsHTMLReflowState& aReflowState)
|
||||
{
|
||||
if (!aReflowState.frame) ABORT0();
|
||||
nsIFrame* prevInFlow;
|
||||
aReflowState.frame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aReflowState.frame->GetPrevInFlow();
|
||||
|
||||
if (!prevInFlow && // 1st in flow && // 1st in flow
|
||||
((NS_UNCONSTRAINEDSIZE == aReflowState.mComputedHeight) || // no computed height
|
||||
@ -3104,8 +3103,7 @@ nsTableFrame::OrderRowGroups(nsVoidArray& aChildren,
|
||||
// Get the next sibling but skip it if it's also the next-in-flow, since
|
||||
// a next-in-flow will not be part of the current table.
|
||||
while (kidFrame) {
|
||||
nsIFrame* nif;
|
||||
kidFrame->GetNextInFlow(&nif);
|
||||
nsIFrame* nif = kidFrame->GetNextInFlow();
|
||||
kidFrame = kidFrame->GetNextSibling();
|
||||
if (kidFrame != nif)
|
||||
break;
|
||||
@ -3219,8 +3217,7 @@ nsTableFrame::ReflowChildren(nsPresContext* aPresContext,
|
||||
|
||||
// record the next in flow in case it gets destroyed and the row group array
|
||||
// needs to be recomputed.
|
||||
nsIFrame* kidNextInFlow;
|
||||
kidFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = kidFrame->GetNextInFlow();
|
||||
|
||||
rv = ReflowChild(kidFrame, aPresContext, desiredSize, kidReflowState,
|
||||
aReflowState.x, aReflowState.y, 0, aStatus);
|
||||
@ -3243,7 +3240,7 @@ nsTableFrame::ReflowChildren(nsPresContext* aPresContext,
|
||||
|
||||
// Special handling for incomplete children
|
||||
if (NS_FRAME_IS_NOT_COMPLETE(aStatus)) {
|
||||
kidFrame->GetNextInFlow(&kidNextInFlow);
|
||||
kidNextInFlow = kidFrame->GetNextInFlow();
|
||||
if (!kidNextInFlow) {
|
||||
// The child doesn't have a next-in-flow so create a continuing
|
||||
// frame. This hooks the child into the flow
|
||||
@ -7487,12 +7484,11 @@ void DumpTableFramesRecur(nsIFrame* aFrame,
|
||||
GetFrameTypeName(fType, fName);
|
||||
|
||||
printf("%s%s %p", indent, fName, aFrame);
|
||||
nsIFrame* flowFrame;
|
||||
aFrame->GetPrevInFlow(&flowFrame);
|
||||
nsIFrame* flowFrame = aFrame->GetPrevInFlow();
|
||||
if (flowFrame) {
|
||||
printf(" pif=%p", flowFrame);
|
||||
}
|
||||
aFrame->GetNextInFlow(&flowFrame);
|
||||
flowFrame = aFrame->GetNextInFlow();
|
||||
if (flowFrame) {
|
||||
printf(" nif=%p", flowFrame);
|
||||
}
|
||||
@ -7516,15 +7512,15 @@ nsTableFrame::DumpTableFrames(nsIFrame* aFrame)
|
||||
nsTableFrame* tableFrame = nsnull;
|
||||
|
||||
if (nsLayoutAtoms::tableFrame == aFrame->GetType()) {
|
||||
tableFrame = (nsTableFrame*)aFrame;
|
||||
tableFrame = NS_STATIC_CAST(nsTableFrame*, aFrame);
|
||||
}
|
||||
else {
|
||||
nsTableFrame::GetTableFrame(aFrame, tableFrame);
|
||||
}
|
||||
tableFrame = (nsTableFrame*)tableFrame->GetFirstInFlow();
|
||||
tableFrame = NS_STATIC_CAST(nsTableFrame*, tableFrame->GetFirstInFlow());
|
||||
while (tableFrame) {
|
||||
DumpTableFramesRecur(tableFrame, 0);
|
||||
tableFrame->GetNextInFlow((nsIFrame**)&tableFrame);
|
||||
tableFrame = NS_STATIC_CAST(nsTableFrame*, tableFrame->GetNextInFlow());
|
||||
}
|
||||
}
|
||||
|
||||
@ -7532,4 +7528,3 @@ nsTableFrame::DumpTableFrames(nsIFrame* aFrame)
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -2116,9 +2116,7 @@ void nsTableOuterFrame::DeleteChildsNextInFlow(nsPresContext* aPresContext,
|
||||
if (!aChild) return;
|
||||
NS_PRECONDITION(mFrames.ContainsFrame(aChild), "bad geometric parent");
|
||||
|
||||
nsIFrame* nextInFlow;
|
||||
|
||||
aChild->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aChild->GetNextInFlow();
|
||||
if (!nextInFlow) {
|
||||
NS_ASSERTION(PR_FALSE, "null next-in-flow");
|
||||
return;
|
||||
@ -2132,9 +2130,7 @@ void nsTableOuterFrame::DeleteChildsNextInFlow(nsPresContext* aPresContext,
|
||||
}
|
||||
// If the next-in-flow has a next-in-flow then delete it too (and
|
||||
// delete it first).
|
||||
nsIFrame* nextNextInFlow;
|
||||
|
||||
nextInFlow->GetNextInFlow(&nextNextInFlow);
|
||||
nsIFrame* nextNextInFlow = nextInFlow->GetNextInFlow();
|
||||
if (nextNextInFlow) {
|
||||
parent->DeleteChildsNextInFlow(aPresContext, nextInFlow);
|
||||
}
|
||||
@ -2159,10 +2155,7 @@ void nsTableOuterFrame::DeleteChildsNextInFlow(nsPresContext* aPresContext,
|
||||
// Delete the next-in-flow frame and adjust it's parent's child count
|
||||
nextInFlow->Destroy(aPresContext);
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
aChild->GetNextInFlow(&nextInFlow);
|
||||
NS_POSTCONDITION(nsnull == nextInFlow, "non null next-in-flow");
|
||||
#endif
|
||||
NS_POSTCONDITION(!aChild->GetNextInFlow(), "non null next-in-flow");
|
||||
}
|
||||
|
||||
nsIAtom*
|
||||
|
@ -783,7 +783,7 @@ nscoord CalcHeightFromUnpaginatedHeight(nsPresContext* aPresContext,
|
||||
if (firstInFlow->HasUnpaginatedHeight()) {
|
||||
height = firstInFlow->GetUnpaginatedHeight(aPresContext);
|
||||
for (nsIFrame* prevInFlow = aRow.GetPrevInFlow(); prevInFlow;
|
||||
prevInFlow->GetPrevInFlow(&prevInFlow)) {
|
||||
prevInFlow = prevInFlow->GetPrevInFlow()) {
|
||||
height -= prevInFlow->GetSize().height;
|
||||
}
|
||||
}
|
||||
@ -806,8 +806,7 @@ nsTableRowFrame::ReflowChildren(nsPresContext* aPresContext,
|
||||
GET_PIXELS_TO_TWIPS(aPresContext, p2t);
|
||||
PRBool borderCollapse = (((nsTableFrame*)aTableFrame.GetFirstInFlow())->IsBorderCollapse());
|
||||
|
||||
nsIFrame* tablePrevInFlow;
|
||||
aTableFrame.GetPrevInFlow(&tablePrevInFlow);
|
||||
nsIFrame* tablePrevInFlow = aTableFrame.GetPrevInFlow();
|
||||
PRBool isPaginated = aPresContext->IsPaginated();
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
@ -899,8 +898,7 @@ nsTableRowFrame::ReflowChildren(nsPresContext* aPresContext,
|
||||
// the cell wants to be bigger than what was available last time or
|
||||
// it is a style change reflow or we are printing, then we must reflow the
|
||||
// cell. Otherwise we can skip the reflow.
|
||||
nsIFrame* kidNextInFlow;
|
||||
kidFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = kidFrame->GetNextInFlow();
|
||||
nsSize cellDesiredSize = cellFrame->GetDesiredSize();
|
||||
if ((availCellWidth != cellFrame->GetPriorAvailWidth()) ||
|
||||
(cellDesiredSize.width > cellFrame->GetPriorAvailWidth()) ||
|
||||
@ -1348,9 +1346,7 @@ nsTableRowFrame::IR_TargetIsChild(nsPresContext* aPresContext,
|
||||
if (mNextInFlow) {
|
||||
for (nsIFrame* cell = mFrames.FirstChild(); cell;
|
||||
cell = cell->GetNextSibling()) {
|
||||
nsIFrame* contFrame;
|
||||
|
||||
cell->GetNextInFlow(&contFrame);
|
||||
nsIFrame* contFrame = cell->GetNextInFlow();
|
||||
if (contFrame) {
|
||||
aStatus = NS_FRAME_NOT_COMPLETE;
|
||||
break;
|
||||
|
@ -170,11 +170,8 @@ PRBool BasicTableLayoutStrategy::Initialize(const nsHTMLReflowState& aReflowStat
|
||||
|
||||
void BasicTableLayoutStrategy::ContinuingFrameCheck()
|
||||
{
|
||||
#ifdef NS_DEBUG
|
||||
nsIFrame* tablePIF = nsnull;
|
||||
mTableFrame->GetPrevInFlow(&tablePIF);
|
||||
NS_ASSERTION(!tablePIF, "never ever call me on a continuing frame!");
|
||||
#endif
|
||||
NS_ASSERTION(!mTableFrame->GetPrevInFlow(),
|
||||
"never ever call me on a continuing frame!");
|
||||
}
|
||||
|
||||
PRBool BCW_Wrapup(const nsHTMLReflowState& aReflowState,
|
||||
|
@ -1723,8 +1723,7 @@ void
|
||||
nsTableFrame::CheckRequestSpecialHeightReflow(const nsHTMLReflowState& aReflowState)
|
||||
{
|
||||
if (!aReflowState.frame) ABORT0();
|
||||
nsIFrame* prevInFlow;
|
||||
aReflowState.frame->GetPrevInFlow(&prevInFlow);
|
||||
nsIFrame* prevInFlow = aReflowState.frame->GetPrevInFlow();
|
||||
|
||||
if (!prevInFlow && // 1st in flow && // 1st in flow
|
||||
((NS_UNCONSTRAINEDSIZE == aReflowState.mComputedHeight) || // no computed height
|
||||
@ -3104,8 +3103,7 @@ nsTableFrame::OrderRowGroups(nsVoidArray& aChildren,
|
||||
// Get the next sibling but skip it if it's also the next-in-flow, since
|
||||
// a next-in-flow will not be part of the current table.
|
||||
while (kidFrame) {
|
||||
nsIFrame* nif;
|
||||
kidFrame->GetNextInFlow(&nif);
|
||||
nsIFrame* nif = kidFrame->GetNextInFlow();
|
||||
kidFrame = kidFrame->GetNextSibling();
|
||||
if (kidFrame != nif)
|
||||
break;
|
||||
@ -3219,8 +3217,7 @@ nsTableFrame::ReflowChildren(nsPresContext* aPresContext,
|
||||
|
||||
// record the next in flow in case it gets destroyed and the row group array
|
||||
// needs to be recomputed.
|
||||
nsIFrame* kidNextInFlow;
|
||||
kidFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = kidFrame->GetNextInFlow();
|
||||
|
||||
rv = ReflowChild(kidFrame, aPresContext, desiredSize, kidReflowState,
|
||||
aReflowState.x, aReflowState.y, 0, aStatus);
|
||||
@ -3243,7 +3240,7 @@ nsTableFrame::ReflowChildren(nsPresContext* aPresContext,
|
||||
|
||||
// Special handling for incomplete children
|
||||
if (NS_FRAME_IS_NOT_COMPLETE(aStatus)) {
|
||||
kidFrame->GetNextInFlow(&kidNextInFlow);
|
||||
kidNextInFlow = kidFrame->GetNextInFlow();
|
||||
if (!kidNextInFlow) {
|
||||
// The child doesn't have a next-in-flow so create a continuing
|
||||
// frame. This hooks the child into the flow
|
||||
@ -7487,12 +7484,11 @@ void DumpTableFramesRecur(nsIFrame* aFrame,
|
||||
GetFrameTypeName(fType, fName);
|
||||
|
||||
printf("%s%s %p", indent, fName, aFrame);
|
||||
nsIFrame* flowFrame;
|
||||
aFrame->GetPrevInFlow(&flowFrame);
|
||||
nsIFrame* flowFrame = aFrame->GetPrevInFlow();
|
||||
if (flowFrame) {
|
||||
printf(" pif=%p", flowFrame);
|
||||
}
|
||||
aFrame->GetNextInFlow(&flowFrame);
|
||||
flowFrame = aFrame->GetNextInFlow();
|
||||
if (flowFrame) {
|
||||
printf(" nif=%p", flowFrame);
|
||||
}
|
||||
@ -7516,15 +7512,15 @@ nsTableFrame::DumpTableFrames(nsIFrame* aFrame)
|
||||
nsTableFrame* tableFrame = nsnull;
|
||||
|
||||
if (nsLayoutAtoms::tableFrame == aFrame->GetType()) {
|
||||
tableFrame = (nsTableFrame*)aFrame;
|
||||
tableFrame = NS_STATIC_CAST(nsTableFrame*, aFrame);
|
||||
}
|
||||
else {
|
||||
nsTableFrame::GetTableFrame(aFrame, tableFrame);
|
||||
}
|
||||
tableFrame = (nsTableFrame*)tableFrame->GetFirstInFlow();
|
||||
tableFrame = NS_STATIC_CAST(nsTableFrame*, tableFrame->GetFirstInFlow());
|
||||
while (tableFrame) {
|
||||
DumpTableFramesRecur(tableFrame, 0);
|
||||
tableFrame->GetNextInFlow((nsIFrame**)&tableFrame);
|
||||
tableFrame = NS_STATIC_CAST(nsTableFrame*, tableFrame->GetNextInFlow());
|
||||
}
|
||||
}
|
||||
|
||||
@ -7532,4 +7528,3 @@ nsTableFrame::DumpTableFrames(nsIFrame* aFrame)
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -2116,9 +2116,7 @@ void nsTableOuterFrame::DeleteChildsNextInFlow(nsPresContext* aPresContext,
|
||||
if (!aChild) return;
|
||||
NS_PRECONDITION(mFrames.ContainsFrame(aChild), "bad geometric parent");
|
||||
|
||||
nsIFrame* nextInFlow;
|
||||
|
||||
aChild->GetNextInFlow(&nextInFlow);
|
||||
nsIFrame* nextInFlow = aChild->GetNextInFlow();
|
||||
if (!nextInFlow) {
|
||||
NS_ASSERTION(PR_FALSE, "null next-in-flow");
|
||||
return;
|
||||
@ -2132,9 +2130,7 @@ void nsTableOuterFrame::DeleteChildsNextInFlow(nsPresContext* aPresContext,
|
||||
}
|
||||
// If the next-in-flow has a next-in-flow then delete it too (and
|
||||
// delete it first).
|
||||
nsIFrame* nextNextInFlow;
|
||||
|
||||
nextInFlow->GetNextInFlow(&nextNextInFlow);
|
||||
nsIFrame* nextNextInFlow = nextInFlow->GetNextInFlow();
|
||||
if (nextNextInFlow) {
|
||||
parent->DeleteChildsNextInFlow(aPresContext, nextInFlow);
|
||||
}
|
||||
@ -2159,10 +2155,7 @@ void nsTableOuterFrame::DeleteChildsNextInFlow(nsPresContext* aPresContext,
|
||||
// Delete the next-in-flow frame and adjust it's parent's child count
|
||||
nextInFlow->Destroy(aPresContext);
|
||||
|
||||
#ifdef NS_DEBUG
|
||||
aChild->GetNextInFlow(&nextInFlow);
|
||||
NS_POSTCONDITION(nsnull == nextInFlow, "non null next-in-flow");
|
||||
#endif
|
||||
NS_POSTCONDITION(!aChild->GetNextInFlow(), "non null next-in-flow");
|
||||
}
|
||||
|
||||
nsIAtom*
|
||||
|
@ -783,7 +783,7 @@ nscoord CalcHeightFromUnpaginatedHeight(nsPresContext* aPresContext,
|
||||
if (firstInFlow->HasUnpaginatedHeight()) {
|
||||
height = firstInFlow->GetUnpaginatedHeight(aPresContext);
|
||||
for (nsIFrame* prevInFlow = aRow.GetPrevInFlow(); prevInFlow;
|
||||
prevInFlow->GetPrevInFlow(&prevInFlow)) {
|
||||
prevInFlow = prevInFlow->GetPrevInFlow()) {
|
||||
height -= prevInFlow->GetSize().height;
|
||||
}
|
||||
}
|
||||
@ -806,8 +806,7 @@ nsTableRowFrame::ReflowChildren(nsPresContext* aPresContext,
|
||||
GET_PIXELS_TO_TWIPS(aPresContext, p2t);
|
||||
PRBool borderCollapse = (((nsTableFrame*)aTableFrame.GetFirstInFlow())->IsBorderCollapse());
|
||||
|
||||
nsIFrame* tablePrevInFlow;
|
||||
aTableFrame.GetPrevInFlow(&tablePrevInFlow);
|
||||
nsIFrame* tablePrevInFlow = aTableFrame.GetPrevInFlow();
|
||||
PRBool isPaginated = aPresContext->IsPaginated();
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
@ -899,8 +898,7 @@ nsTableRowFrame::ReflowChildren(nsPresContext* aPresContext,
|
||||
// the cell wants to be bigger than what was available last time or
|
||||
// it is a style change reflow or we are printing, then we must reflow the
|
||||
// cell. Otherwise we can skip the reflow.
|
||||
nsIFrame* kidNextInFlow;
|
||||
kidFrame->GetNextInFlow(&kidNextInFlow);
|
||||
nsIFrame* kidNextInFlow = kidFrame->GetNextInFlow();
|
||||
nsSize cellDesiredSize = cellFrame->GetDesiredSize();
|
||||
if ((availCellWidth != cellFrame->GetPriorAvailWidth()) ||
|
||||
(cellDesiredSize.width > cellFrame->GetPriorAvailWidth()) ||
|
||||
@ -1348,9 +1346,7 @@ nsTableRowFrame::IR_TargetIsChild(nsPresContext* aPresContext,
|
||||
if (mNextInFlow) {
|
||||
for (nsIFrame* cell = mFrames.FirstChild(); cell;
|
||||
cell = cell->GetNextSibling()) {
|
||||
nsIFrame* contFrame;
|
||||
|
||||
cell->GetNextInFlow(&contFrame);
|
||||
nsIFrame* contFrame = cell->GetNextInFlow();
|
||||
if (contFrame) {
|
||||
aStatus = NS_FRAME_NOT_COMPLETE;
|
||||
break;
|
||||
|
@ -201,7 +201,7 @@ nsBoxObject::GetOffsetRect(nsRect& aRect)
|
||||
nsIFrame* next = frame;
|
||||
do {
|
||||
rcFrame.UnionRect(rcFrame, next->GetRect());
|
||||
next->GetNextInFlow(&next);
|
||||
next = next->GetNextInFlow();
|
||||
} while (nsnull != next);
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user