recursion failing finding the same frame we started with sometimes with generated content from style. simple 2 line check to avoind this. dagley said ok to check in red tree since not hurting anyone.
git-svn-id: svn://10.0.0.236/trunk@48812 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -2023,7 +2023,16 @@ nsFrame::PeekOffset(nsPeekOffsetStruct *aPos)
|
||||
edgeCase, //start from thisLine
|
||||
&(aPos->mResultFrame)
|
||||
);
|
||||
doneLooping = PR_TRUE; //do not continue with while loop
|
||||
if (aPos->mResultFrame == this)//we came back to same spot! keep going
|
||||
{
|
||||
aPos->mResultFrame = nsnull;
|
||||
if (aPos->mDirection == eDirPrevious)
|
||||
thisLine--;
|
||||
else
|
||||
thisLine++;
|
||||
}
|
||||
else
|
||||
doneLooping = PR_TRUE; //do not continue with while loop
|
||||
if (NS_SUCCEEDED(result) && aPos->mResultFrame){
|
||||
result = aPos->mResultFrame->QueryInterface(nsILineIterator::GetIID(),getter_AddRefs(it));
|
||||
if (NS_SUCCEEDED(result) && it)//we have struck another block element!
|
||||
|
||||
@@ -2023,7 +2023,16 @@ nsFrame::PeekOffset(nsPeekOffsetStruct *aPos)
|
||||
edgeCase, //start from thisLine
|
||||
&(aPos->mResultFrame)
|
||||
);
|
||||
doneLooping = PR_TRUE; //do not continue with while loop
|
||||
if (aPos->mResultFrame == this)//we came back to same spot! keep going
|
||||
{
|
||||
aPos->mResultFrame = nsnull;
|
||||
if (aPos->mDirection == eDirPrevious)
|
||||
thisLine--;
|
||||
else
|
||||
thisLine++;
|
||||
}
|
||||
else
|
||||
doneLooping = PR_TRUE; //do not continue with while loop
|
||||
if (NS_SUCCEEDED(result) && aPos->mResultFrame){
|
||||
result = aPos->mResultFrame->QueryInterface(nsILineIterator::GetIID(),getter_AddRefs(it));
|
||||
if (NS_SUCCEEDED(result) && it)//we have struck another block element!
|
||||
|
||||
Reference in New Issue
Block a user