diff --git a/mozilla/parser/htmlparser/src/nsHTMLTokenizer.cpp b/mozilla/parser/htmlparser/src/nsHTMLTokenizer.cpp index 5f04491c459..2274f7188de 100644 --- a/mozilla/parser/htmlparser/src/nsHTMLTokenizer.cpp +++ b/mozilla/parser/htmlparser/src/nsHTMLTokenizer.cpp @@ -77,33 +77,30 @@ nsHTMLTokenizer::nsHTMLTokenizer(PRInt32 aParseMode, PRUint16 aFlags) : nsITokenizer(), mTokenDeque(0), mFlags(aFlags) { - if (aParseMode==eDTDMode_full_standards || - aParseMode==eDTDMode_almost_standards) { + if (aParseMode == eDTDMode_full_standards || + aParseMode == eDTDMode_almost_standards) { mFlags |= NS_IPARSER_FLAG_STRICT_MODE; - } - else if (aParseMode==eDTDMode_quirks) { + } else if (aParseMode == eDTDMode_quirks) { mFlags |= NS_IPARSER_FLAG_QUIRKS_MODE; - } - else if (aParseMode==eDTDMode_autodetect) { + } else if (aParseMode == eDTDMode_autodetect) { mFlags |= NS_IPARSER_FLAG_AUTO_DETECT_MODE; - } - else { + } else { mFlags |= NS_IPARSER_FLAG_UNKNOWN_MODE; } - if (aDocType==ePlainText) { + if (aDocType == ePlainText) { mFlags |= NS_IPARSER_FLAG_PLAIN_TEXT; - } - else if (aDocType==eXML) { + } else if (aDocType == eXML) { mFlags |= NS_IPARSER_FLAG_XML; - } - else if (aDocType==eHTML_Quirks || - aDocType==eHTML3_Quirks || - aDocType==eHTML_Strict) { + } else if (aDocType == eHTML_Quirks || + aDocType == eHTML3_Quirks || + aDocType == eHTML_Strict) { mFlags |= NS_IPARSER_FLAG_HTML; } - mFlags |= (aCommand==eViewSource)? NS_IPARSER_FLAG_VIEW_SOURCE:NS_IPARSER_FLAG_VIEW_NORMAL; + mFlags |= aCommand == eViewSource + ? NS_IPARSER_FLAG_VIEW_SOURCE + : NS_IPARSER_FLAG_VIEW_NORMAL; NS_ASSERTION(!(mFlags & NS_IPARSER_FLAG_XML) || (mFlags & NS_IPARSER_FLAG_VIEW_SOURCE), @@ -113,13 +110,12 @@ nsHTMLTokenizer::nsHTMLTokenizer(PRInt32 aParseMode, mTokenScanPos = 0; } - /** * The destructor ensures that we don't leak any left over tokens. */ nsHTMLTokenizer::~nsHTMLTokenizer() { - if(mTokenDeque.GetSize()){ + if (mTokenDeque.GetSize()) { CTokenDeallocator theDeallocator(mTokenAllocator->GetArenaPool()); mTokenDeque.ForEach(theDeallocator); } @@ -142,16 +138,16 @@ nsHTMLTokenizer::~nsHTMLTokenizer() * is not a success code. */ /* static */ -void nsHTMLTokenizer::AddToken(CToken*& aToken, - nsresult aResult, - nsDeque* aDeque, - nsTokenAllocator* aTokenAllocator) +void +nsHTMLTokenizer::AddToken(CToken*& aToken, + nsresult aResult, + nsDeque* aDeque, + nsTokenAllocator* aTokenAllocator) { - if(aToken && aDeque) { - if(NS_SUCCEEDED(aResult)) { + if (aToken && aDeque) { + if (NS_SUCCEEDED(aResult)) { aDeque->Push(aToken); - } - else { + } else { IF_FREE(aToken, aTokenAllocator); } } @@ -162,35 +158,34 @@ void nsHTMLTokenizer::AddToken(CToken*& aToken, * * @return Pointer to recycler (or null) */ -nsTokenAllocator* nsHTMLTokenizer::GetTokenAllocator(void) +nsTokenAllocator* +nsHTMLTokenizer::GetTokenAllocator() { return mTokenAllocator; } - /** * This method provides access to the topmost token in the tokenDeque. * The token is not really removed from the list. * * @return Pointer to token */ -CToken* nsHTMLTokenizer::PeekToken() +CToken* +nsHTMLTokenizer::PeekToken() { return (CToken*)mTokenDeque.PeekFront(); } - /** * This method provides access to the topmost token in the tokenDeque. * The token is really removed from the list; if the list is empty we return 0. * * @return Pointer to token or NULL */ -CToken* nsHTMLTokenizer::PopToken() +CToken* +nsHTMLTokenizer::PopToken() { - CToken* result=nsnull; - result=(CToken*)mTokenDeque.PopFront(); - return result; + return (CToken*)mTokenDeque.PopFront(); } @@ -201,7 +196,8 @@ CToken* nsHTMLTokenizer::PopToken() * @param theToken The next token to be processed * @return theToken */ -CToken* nsHTMLTokenizer::PushTokenFront(CToken* theToken) +CToken* +nsHTMLTokenizer::PushTokenFront(CToken* theToken) { mTokenDeque.PushFront(theToken); return theToken; @@ -213,7 +209,8 @@ CToken* nsHTMLTokenizer::PushTokenFront(CToken* theToken) * @param theToken the new token. * @return theToken */ -CToken* nsHTMLTokenizer::PushToken(CToken* theToken) +CToken* +nsHTMLTokenizer::PushToken(CToken* theToken) { mTokenDeque.Push(theToken); return theToken; @@ -224,7 +221,8 @@ CToken* nsHTMLTokenizer::PushToken(CToken* theToken) * * @return The number of remaining tokens. */ -PRInt32 nsHTMLTokenizer::GetCount(void) +PRInt32 +nsHTMLTokenizer::GetCount() { return mTokenDeque.GetSize(); } @@ -237,7 +235,8 @@ PRInt32 nsHTMLTokenizer::GetCount(void) * the result of a call to PeekToken() * @return The requested token. */ -CToken* nsHTMLTokenizer::GetTokenAt(PRInt32 anIndex) +CToken* +nsHTMLTokenizer::GetTokenAt(PRInt32 anIndex) { return (CToken*)mTokenDeque.ObjectAt(anIndex); } @@ -251,13 +250,15 @@ CToken* nsHTMLTokenizer::GetTokenAt(PRInt32 anIndex) * @param aTokenAllocator The token allocator to use for this document. * @return Our success in setting up. */ -nsresult nsHTMLTokenizer::WillTokenize(PRBool aIsFinalChunk, - nsTokenAllocator* aTokenAllocator) +nsresult +nsHTMLTokenizer::WillTokenize(PRBool aIsFinalChunk, + nsTokenAllocator* aTokenAllocator) { - mTokenAllocator=aTokenAllocator; - mIsFinalChunk=aIsFinalChunk; + mTokenAllocator = aTokenAllocator; + mIsFinalChunk = aIsFinalChunk; + // Cause ScanDocStructure to search from here for new tokens... - mTokenScanPos=mTokenDeque.GetSize(); + mTokenScanPos = mTokenDeque.GetSize(); return NS_OK; } @@ -267,16 +268,15 @@ nsresult nsHTMLTokenizer::WillTokenize(PRBool aIsFinalChunk, * * @param aDeque The deque with the tokens in it. */ -void nsHTMLTokenizer::PrependTokens(nsDeque& aDeque) +void +nsHTMLTokenizer::PrependTokens(nsDeque& aDeque) { - PRInt32 aCount=aDeque.GetSize(); + PRInt32 aCount = aDeque.GetSize(); - PRInt32 anIndex=0; - for(anIndex=0;anIndexmFlags; @@ -305,15 +306,16 @@ nsresult nsHTMLTokenizer::CopyState(nsITokenizer* aTokenizer) * @param aTagStack -- the stack to be searched * @return index position of tag in stack if found, otherwise kNotFound */ -static PRInt32 FindLastIndexOfTag(eHTMLTags aTag,nsDeque &aTagStack) +static PRInt32 +FindLastIndexOfTag(eHTMLTags aTag, nsDeque &aTagStack) { - PRInt32 theCount=aTagStack.GetSize(); + PRInt32 theCount = aTagStack.GetSize(); - while(0GetTypeID(); - if(theTag==aTag) { + while (0 < theCount) { + CHTMLToken* theToken = (CHTMLToken*)aTagStack.ObjectAt(--theCount); + if (theToken) { + eHTMLTags theTag = (eHTMLTags)theToken->GetTypeID(); + if (theTag == aTag) { return theCount; } } @@ -334,19 +336,19 @@ static PRInt32 FindLastIndexOfTag(eHTMLTags aTag,nsDeque &aTagStack) nsresult nsHTMLTokenizer::ScanDocStructure(PRBool aFinalChunk) { nsresult result = NS_OK; - if (!mTokenDeque.GetSize()) + if (!mTokenDeque.GetSize()) { return result; + } CHTMLToken* theToken = (CHTMLToken*)mTokenDeque.ObjectAt(mTokenScanPos); // Start by finding the first start tag that hasn't been reviewed. - while(mTokenScanPos > 0) { - if(theToken) { + while (mTokenScanPos > 0) { + if (theToken) { eHTMLTokenTypes theType = eHTMLTokenTypes(theToken->GetTokenType()); - if(eToken_start == theType) { - if(eFormUnknown == theToken->GetContainerInfo()) { - break; - } + if (theType == eToken_start && + theToken->GetContainerInfo() == eFormUnknown) { + break; } } theToken = (CHTMLToken*)mTokenDeque.ObjectAt(--mTokenScanPos); @@ -362,17 +364,17 @@ nsresult nsHTMLTokenizer::ScanDocStructure(PRBool aFinalChunk) // Don't bother if we get ridiculously deep. static const PRInt32 theMaxStackDepth = 200; - while(theToken && theStackDepth < theMaxStackDepth) { + while (theToken && theStackDepth < theMaxStackDepth) { eHTMLTokenTypes theType = eHTMLTokenTypes(theToken->GetTokenType()); eHTMLTags theTag = (eHTMLTags)theToken->GetTypeID(); - if(nsHTMLElement::IsContainer(theTag)) { // Bug 54117 + if (nsHTMLElement::IsContainer(theTag)) { // Bug 54117 PRBool theTagIsBlock = gHTMLElements[theTag].IsMemberOf(kBlockEntity); - PRBool theTagIsInline = (theTagIsBlock) ? - PR_FALSE : - gHTMLElements[theTag].IsMemberOf(kInlineEntity); + PRBool theTagIsInline = theTagIsBlock + ? PR_FALSE + : gHTMLElements[theTag].IsMemberOf(kInlineEntity); - if(theTagIsBlock || theTagIsInline || eHTMLTag_table == theTag) { + if (theTagIsBlock || theTagIsInline || eHTMLTag_table == theTag) { switch(theType) { case eToken_start: { @@ -406,27 +408,27 @@ nsresult nsHTMLTokenizer::ScanDocStructure(PRBool aFinalChunk) break; case eToken_end: { - CHTMLToken *theLastToken = NS_STATIC_CAST(CHTMLToken*, theStack.Peek()); - if(theLastToken) { - if(theTag == theLastToken->GetTypeID()) { + CHTMLToken *theLastToken = + NS_STATIC_CAST(CHTMLToken*, theStack.Peek()); + if (theLastToken) { + if (theTag == theLastToken->GetTypeID()) { theStack.Pop(); // Yank it for real theStackDepth--; theLastToken->SetContainerInfo(eWellFormed); - } - else { + } else { // This token wasn't what we expected it to be! We need to // go searching for its real start tag on our stack. Each // tag in between the end tag and start tag must be malformed - if(FindLastIndexOfTag(theTag, theStack) != kNotFound) { + if (FindLastIndexOfTag(theTag, theStack) != kNotFound) { // Find theTarget in the stack, marking each (malformed!) // tag in our way. - theStack.Pop(); // pop off theLastToken for real. + theStack.Pop(); // Pop off theLastToken for real. do { theLastToken->SetContainerInfo(eMalformed); tempStack.Push(theLastToken); theLastToken = NS_STATIC_CAST(CHTMLToken*, theStack.Pop()); - } while(theLastToken && theTag != theLastToken->GetTypeID()); + } while (theLastToken && theTag != theLastToken->GetTypeID()); // XXX The above test can confuse two different userdefined // tags. @@ -439,12 +441,12 @@ nsresult nsHTMLTokenizer::ScanDocStructure(PRBool aFinalChunk) // stack to preserve the general structure of the document. // Note that we don't push the target token back onto the // the stack (since it was just closed). - while(tempStack.GetSize() != 0) { + while (tempStack.GetSize() != 0) { theStack.Push(tempStack.Pop()); } - } // else ignore a bogus end tag. + } } - } // if (theLastToken) + } } break; default: @@ -465,7 +467,8 @@ nsresult nsHTMLTokenizer::ScanDocStructure(PRBool aFinalChunk) * @param aFinalChunk Tells us if this was the last chunk of data. * @return Error result. */ -nsresult nsHTMLTokenizer::DidTokenize(PRBool aFinalChunk) +nsresult +nsHTMLTokenizer::DidTokenize(PRBool aFinalChunk) { return ScanDocStructure(aFinalChunk); } @@ -482,12 +485,13 @@ nsresult nsHTMLTokenizer::DidTokenize(PRBool aFinalChunk) * reach a