Use the new allocating ReplaceElementAt so that the context and style

stacks aren't sliding memory buffers all over the place (and over
allocating).
This commit is contained in:
jevering 1998-07-02 00:29:59 +00:00
Родитель ca519eff60
Коммит 1217392fcb
4 изменённых файлов: 28 добавлений и 28 удалений

Просмотреть файл

@ -1771,7 +1771,7 @@ PRInt32 CNavDTD::OpenHTML(const nsIParserNode& aNode){
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
PRInt32 result=mSink->OpenHTML(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
return result;
}
@ -1801,7 +1801,7 @@ PRInt32 CNavDTD::CloseHTML(const nsIParserNode& aNode){
* @return TRUE if ok, FALSE if error
*/
PRInt32 CNavDTD::OpenHead(const nsIParserNode& aNode){
mContextStack.InsertElementAt((void*)eHTMLTag_head,++mContextStackPos);
mContextStack.ReplaceElementAt((void*)eHTMLTag_head,++mContextStackPos);
PRInt32 result=mSink->OpenHead(aNode);
return result;
}
@ -1861,7 +1861,7 @@ PRInt32 CNavDTD::OpenBody(const nsIParserNode& aNode){
if(kNoError==result) {
result=mSink->OpenBody(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
}
return result;
}
@ -1968,7 +1968,7 @@ PRInt32 CNavDTD::CloseMap(const nsIParserNode& aNode){
PRInt32 CNavDTD::OpenFrameset(const nsIParserNode& aNode){
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
PRInt32 result=mSink->OpenFrameset(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
return result;
}
@ -2023,7 +2023,7 @@ PRInt32 CNavDTD::OpenContainer(const nsIParserNode& aNode,PRBool aUpdateStyleSta
default:
result=mSink->OpenContainer(aNode);
mContextStack.InsertElementAt((void*)nodeType,mContextStackPos++);
mContextStack.ReplaceElementAt((void*)nodeType,mContextStackPos++);
break;
}
@ -2075,7 +2075,7 @@ PRInt32 CNavDTD::CloseContainer(const nsIParserNode& aNode,eHTMLTags aTag,PRBool
break;
}
mLeafBits.InsertElementAt((void*)PR_FALSE, mContextStackPos);
mLeafBits.ReplaceElementAt((void*)PR_FALSE, mContextStackPos);
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
UpdateStyleStackForCloseTag(nodeType,aTag);
}
@ -2306,7 +2306,7 @@ PRInt32 CNavDTD::UpdateStyleStackForOpenTag(eHTMLTags aTag,eHTMLTags anActualTag
case eHTMLTag_tt:
case eHTMLTag_u:
case eHTMLTag_var:
mStyleStack.InsertElementAt((void*)aTag,mStyleStackPos++);
mStyleStack.ReplaceElementAt((void*)aTag,mStyleStackPos++);
break;
case eHTMLTag_h1: case eHTMLTag_h2:

Просмотреть файл

@ -1736,7 +1736,7 @@ PRInt32 COtherDTD::OpenHTML(const nsIParserNode& aNode){
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
PRInt32 result=mSink->OpenHTML(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
return result;
}
@ -1766,7 +1766,7 @@ PRInt32 COtherDTD::CloseHTML(const nsIParserNode& aNode){
* @return TRUE if ok, FALSE if error
*/
PRInt32 COtherDTD::OpenHead(const nsIParserNode& aNode){
mContextStack.InsertElementAt((void*)eHTMLTag_head,++mContextStackPos);
mContextStack.ReplaceElementAt((void*)eHTMLTag_head,++mContextStackPos);
PRInt32 result=mSink->OpenHead(aNode);
return result;
}
@ -1826,7 +1826,7 @@ PRInt32 COtherDTD::OpenBody(const nsIParserNode& aNode){
if(kNoError==result) {
result=mSink->OpenBody(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
}
return result;
}
@ -1933,7 +1933,7 @@ PRInt32 COtherDTD::CloseMap(const nsIParserNode& aNode){
PRInt32 COtherDTD::OpenFrameset(const nsIParserNode& aNode){
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
PRInt32 result=mSink->OpenFrameset(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
return result;
}
@ -1988,7 +1988,7 @@ PRInt32 COtherDTD::OpenContainer(const nsIParserNode& aNode,PRBool aUpdateStyleS
default:
result=mSink->OpenContainer(aNode);
mContextStack.InsertElementAt((void*)nodeType,mContextStackPos++);
mContextStack.ReplaceElementAt((void*)nodeType,mContextStackPos++);
break;
}
@ -2040,7 +2040,7 @@ PRInt32 COtherDTD::CloseContainer(const nsIParserNode& aNode,eHTMLTags aTag,PRBo
break;
}
mLeafBits.InsertElementAt((void*)PR_FALSE, mContextStackPos);
mLeafBits.ReplaceElementAt((void*)PR_FALSE, mContextStackPos);
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
UpdateStyleStackForCloseTag(nodeType,aTag);
}
@ -2271,7 +2271,7 @@ PRInt32 COtherDTD::UpdateStyleStackForOpenTag(eHTMLTags aTag,eHTMLTags anActualT
case eHTMLTag_tt:
case eHTMLTag_u:
case eHTMLTag_var:
mStyleStack.InsertElementAt((void*)aTag,mStyleStackPos++);
mStyleStack.ReplaceElementAt((void*)aTag,mStyleStackPos++);
break;
case eHTMLTag_h1: case eHTMLTag_h2:

Просмотреть файл

@ -1771,7 +1771,7 @@ PRInt32 CNavDTD::OpenHTML(const nsIParserNode& aNode){
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
PRInt32 result=mSink->OpenHTML(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
return result;
}
@ -1801,7 +1801,7 @@ PRInt32 CNavDTD::CloseHTML(const nsIParserNode& aNode){
* @return TRUE if ok, FALSE if error
*/
PRInt32 CNavDTD::OpenHead(const nsIParserNode& aNode){
mContextStack.InsertElementAt((void*)eHTMLTag_head,++mContextStackPos);
mContextStack.ReplaceElementAt((void*)eHTMLTag_head,++mContextStackPos);
PRInt32 result=mSink->OpenHead(aNode);
return result;
}
@ -1861,7 +1861,7 @@ PRInt32 CNavDTD::OpenBody(const nsIParserNode& aNode){
if(kNoError==result) {
result=mSink->OpenBody(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
}
return result;
}
@ -1968,7 +1968,7 @@ PRInt32 CNavDTD::CloseMap(const nsIParserNode& aNode){
PRInt32 CNavDTD::OpenFrameset(const nsIParserNode& aNode){
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
PRInt32 result=mSink->OpenFrameset(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
return result;
}
@ -2023,7 +2023,7 @@ PRInt32 CNavDTD::OpenContainer(const nsIParserNode& aNode,PRBool aUpdateStyleSta
default:
result=mSink->OpenContainer(aNode);
mContextStack.InsertElementAt((void*)nodeType,mContextStackPos++);
mContextStack.ReplaceElementAt((void*)nodeType,mContextStackPos++);
break;
}
@ -2075,7 +2075,7 @@ PRInt32 CNavDTD::CloseContainer(const nsIParserNode& aNode,eHTMLTags aTag,PRBool
break;
}
mLeafBits.InsertElementAt((void*)PR_FALSE, mContextStackPos);
mLeafBits.ReplaceElementAt((void*)PR_FALSE, mContextStackPos);
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
UpdateStyleStackForCloseTag(nodeType,aTag);
}
@ -2306,7 +2306,7 @@ PRInt32 CNavDTD::UpdateStyleStackForOpenTag(eHTMLTags aTag,eHTMLTags anActualTag
case eHTMLTag_tt:
case eHTMLTag_u:
case eHTMLTag_var:
mStyleStack.InsertElementAt((void*)aTag,mStyleStackPos++);
mStyleStack.ReplaceElementAt((void*)aTag,mStyleStackPos++);
break;
case eHTMLTag_h1: case eHTMLTag_h2:

Просмотреть файл

@ -1736,7 +1736,7 @@ PRInt32 COtherDTD::OpenHTML(const nsIParserNode& aNode){
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
PRInt32 result=mSink->OpenHTML(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
return result;
}
@ -1766,7 +1766,7 @@ PRInt32 COtherDTD::CloseHTML(const nsIParserNode& aNode){
* @return TRUE if ok, FALSE if error
*/
PRInt32 COtherDTD::OpenHead(const nsIParserNode& aNode){
mContextStack.InsertElementAt((void*)eHTMLTag_head,++mContextStackPos);
mContextStack.ReplaceElementAt((void*)eHTMLTag_head,++mContextStackPos);
PRInt32 result=mSink->OpenHead(aNode);
return result;
}
@ -1826,7 +1826,7 @@ PRInt32 COtherDTD::OpenBody(const nsIParserNode& aNode){
if(kNoError==result) {
result=mSink->OpenBody(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
}
return result;
}
@ -1933,7 +1933,7 @@ PRInt32 COtherDTD::CloseMap(const nsIParserNode& aNode){
PRInt32 COtherDTD::OpenFrameset(const nsIParserNode& aNode){
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
PRInt32 result=mSink->OpenFrameset(aNode);
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
return result;
}
@ -1988,7 +1988,7 @@ PRInt32 COtherDTD::OpenContainer(const nsIParserNode& aNode,PRBool aUpdateStyleS
default:
result=mSink->OpenContainer(aNode);
mContextStack.InsertElementAt((void*)nodeType,mContextStackPos++);
mContextStack.ReplaceElementAt((void*)nodeType,mContextStackPos++);
break;
}
@ -2040,7 +2040,7 @@ PRInt32 COtherDTD::CloseContainer(const nsIParserNode& aNode,eHTMLTags aTag,PRBo
break;
}
mLeafBits.InsertElementAt((void*)PR_FALSE, mContextStackPos);
mLeafBits.ReplaceElementAt((void*)PR_FALSE, mContextStackPos);
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
UpdateStyleStackForCloseTag(nodeType,aTag);
}
@ -2271,7 +2271,7 @@ PRInt32 COtherDTD::UpdateStyleStackForOpenTag(eHTMLTags aTag,eHTMLTags anActualT
case eHTMLTag_tt:
case eHTMLTag_u:
case eHTMLTag_var:
mStyleStack.InsertElementAt((void*)aTag,mStyleStackPos++);
mStyleStack.ReplaceElementAt((void*)aTag,mStyleStackPos++);
break;
case eHTMLTag_h1: case eHTMLTag_h2: