зеркало из https://github.com/mozilla/pjs.git
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:
Родитель
3705e61240
Коммит
7f7b55b452
|
@ -1771,7 +1771,7 @@ PRInt32 CNavDTD::OpenHTML(const nsIParserNode& aNode){
|
||||||
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
||||||
|
|
||||||
PRInt32 result=mSink->OpenHTML(aNode);
|
PRInt32 result=mSink->OpenHTML(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1801,7 +1801,7 @@ PRInt32 CNavDTD::CloseHTML(const nsIParserNode& aNode){
|
||||||
* @return TRUE if ok, FALSE if error
|
* @return TRUE if ok, FALSE if error
|
||||||
*/
|
*/
|
||||||
PRInt32 CNavDTD::OpenHead(const nsIParserNode& aNode){
|
PRInt32 CNavDTD::OpenHead(const nsIParserNode& aNode){
|
||||||
mContextStack.InsertElementAt((void*)eHTMLTag_head,++mContextStackPos);
|
mContextStack.ReplaceElementAt((void*)eHTMLTag_head,++mContextStackPos);
|
||||||
PRInt32 result=mSink->OpenHead(aNode);
|
PRInt32 result=mSink->OpenHead(aNode);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1861,7 +1861,7 @@ PRInt32 CNavDTD::OpenBody(const nsIParserNode& aNode){
|
||||||
|
|
||||||
if(kNoError==result) {
|
if(kNoError==result) {
|
||||||
result=mSink->OpenBody(aNode);
|
result=mSink->OpenBody(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1968,7 +1968,7 @@ PRInt32 CNavDTD::CloseMap(const nsIParserNode& aNode){
|
||||||
PRInt32 CNavDTD::OpenFrameset(const nsIParserNode& aNode){
|
PRInt32 CNavDTD::OpenFrameset(const nsIParserNode& aNode){
|
||||||
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
||||||
PRInt32 result=mSink->OpenFrameset(aNode);
|
PRInt32 result=mSink->OpenFrameset(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2023,7 +2023,7 @@ PRInt32 CNavDTD::OpenContainer(const nsIParserNode& aNode,PRBool aUpdateStyleSta
|
||||||
|
|
||||||
default:
|
default:
|
||||||
result=mSink->OpenContainer(aNode);
|
result=mSink->OpenContainer(aNode);
|
||||||
mContextStack.InsertElementAt((void*)nodeType,mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)nodeType,mContextStackPos++);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2075,7 +2075,7 @@ PRInt32 CNavDTD::CloseContainer(const nsIParserNode& aNode,eHTMLTags aTag,PRBool
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mLeafBits.InsertElementAt((void*)PR_FALSE, mContextStackPos);
|
mLeafBits.ReplaceElementAt((void*)PR_FALSE, mContextStackPos);
|
||||||
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
|
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
|
||||||
UpdateStyleStackForCloseTag(nodeType,aTag);
|
UpdateStyleStackForCloseTag(nodeType,aTag);
|
||||||
}
|
}
|
||||||
|
@ -2306,7 +2306,7 @@ PRInt32 CNavDTD::UpdateStyleStackForOpenTag(eHTMLTags aTag,eHTMLTags anActualTag
|
||||||
case eHTMLTag_tt:
|
case eHTMLTag_tt:
|
||||||
case eHTMLTag_u:
|
case eHTMLTag_u:
|
||||||
case eHTMLTag_var:
|
case eHTMLTag_var:
|
||||||
mStyleStack.InsertElementAt((void*)aTag,mStyleStackPos++);
|
mStyleStack.ReplaceElementAt((void*)aTag,mStyleStackPos++);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eHTMLTag_h1: case eHTMLTag_h2:
|
case eHTMLTag_h1: case eHTMLTag_h2:
|
||||||
|
|
|
@ -1736,7 +1736,7 @@ PRInt32 COtherDTD::OpenHTML(const nsIParserNode& aNode){
|
||||||
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
||||||
|
|
||||||
PRInt32 result=mSink->OpenHTML(aNode);
|
PRInt32 result=mSink->OpenHTML(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1766,7 +1766,7 @@ PRInt32 COtherDTD::CloseHTML(const nsIParserNode& aNode){
|
||||||
* @return TRUE if ok, FALSE if error
|
* @return TRUE if ok, FALSE if error
|
||||||
*/
|
*/
|
||||||
PRInt32 COtherDTD::OpenHead(const nsIParserNode& aNode){
|
PRInt32 COtherDTD::OpenHead(const nsIParserNode& aNode){
|
||||||
mContextStack.InsertElementAt((void*)eHTMLTag_head,++mContextStackPos);
|
mContextStack.ReplaceElementAt((void*)eHTMLTag_head,++mContextStackPos);
|
||||||
PRInt32 result=mSink->OpenHead(aNode);
|
PRInt32 result=mSink->OpenHead(aNode);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1826,7 +1826,7 @@ PRInt32 COtherDTD::OpenBody(const nsIParserNode& aNode){
|
||||||
|
|
||||||
if(kNoError==result) {
|
if(kNoError==result) {
|
||||||
result=mSink->OpenBody(aNode);
|
result=mSink->OpenBody(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1933,7 +1933,7 @@ PRInt32 COtherDTD::CloseMap(const nsIParserNode& aNode){
|
||||||
PRInt32 COtherDTD::OpenFrameset(const nsIParserNode& aNode){
|
PRInt32 COtherDTD::OpenFrameset(const nsIParserNode& aNode){
|
||||||
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
||||||
PRInt32 result=mSink->OpenFrameset(aNode);
|
PRInt32 result=mSink->OpenFrameset(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1988,7 +1988,7 @@ PRInt32 COtherDTD::OpenContainer(const nsIParserNode& aNode,PRBool aUpdateStyleS
|
||||||
|
|
||||||
default:
|
default:
|
||||||
result=mSink->OpenContainer(aNode);
|
result=mSink->OpenContainer(aNode);
|
||||||
mContextStack.InsertElementAt((void*)nodeType,mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)nodeType,mContextStackPos++);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2040,7 +2040,7 @@ PRInt32 COtherDTD::CloseContainer(const nsIParserNode& aNode,eHTMLTags aTag,PRBo
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mLeafBits.InsertElementAt((void*)PR_FALSE, mContextStackPos);
|
mLeafBits.ReplaceElementAt((void*)PR_FALSE, mContextStackPos);
|
||||||
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
|
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
|
||||||
UpdateStyleStackForCloseTag(nodeType,aTag);
|
UpdateStyleStackForCloseTag(nodeType,aTag);
|
||||||
}
|
}
|
||||||
|
@ -2271,7 +2271,7 @@ PRInt32 COtherDTD::UpdateStyleStackForOpenTag(eHTMLTags aTag,eHTMLTags anActualT
|
||||||
case eHTMLTag_tt:
|
case eHTMLTag_tt:
|
||||||
case eHTMLTag_u:
|
case eHTMLTag_u:
|
||||||
case eHTMLTag_var:
|
case eHTMLTag_var:
|
||||||
mStyleStack.InsertElementAt((void*)aTag,mStyleStackPos++);
|
mStyleStack.ReplaceElementAt((void*)aTag,mStyleStackPos++);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eHTMLTag_h1: case eHTMLTag_h2:
|
case eHTMLTag_h1: case eHTMLTag_h2:
|
||||||
|
|
|
@ -1771,7 +1771,7 @@ PRInt32 CNavDTD::OpenHTML(const nsIParserNode& aNode){
|
||||||
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
||||||
|
|
||||||
PRInt32 result=mSink->OpenHTML(aNode);
|
PRInt32 result=mSink->OpenHTML(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1801,7 +1801,7 @@ PRInt32 CNavDTD::CloseHTML(const nsIParserNode& aNode){
|
||||||
* @return TRUE if ok, FALSE if error
|
* @return TRUE if ok, FALSE if error
|
||||||
*/
|
*/
|
||||||
PRInt32 CNavDTD::OpenHead(const nsIParserNode& aNode){
|
PRInt32 CNavDTD::OpenHead(const nsIParserNode& aNode){
|
||||||
mContextStack.InsertElementAt((void*)eHTMLTag_head,++mContextStackPos);
|
mContextStack.ReplaceElementAt((void*)eHTMLTag_head,++mContextStackPos);
|
||||||
PRInt32 result=mSink->OpenHead(aNode);
|
PRInt32 result=mSink->OpenHead(aNode);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1861,7 +1861,7 @@ PRInt32 CNavDTD::OpenBody(const nsIParserNode& aNode){
|
||||||
|
|
||||||
if(kNoError==result) {
|
if(kNoError==result) {
|
||||||
result=mSink->OpenBody(aNode);
|
result=mSink->OpenBody(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1968,7 +1968,7 @@ PRInt32 CNavDTD::CloseMap(const nsIParserNode& aNode){
|
||||||
PRInt32 CNavDTD::OpenFrameset(const nsIParserNode& aNode){
|
PRInt32 CNavDTD::OpenFrameset(const nsIParserNode& aNode){
|
||||||
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
||||||
PRInt32 result=mSink->OpenFrameset(aNode);
|
PRInt32 result=mSink->OpenFrameset(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2023,7 +2023,7 @@ PRInt32 CNavDTD::OpenContainer(const nsIParserNode& aNode,PRBool aUpdateStyleSta
|
||||||
|
|
||||||
default:
|
default:
|
||||||
result=mSink->OpenContainer(aNode);
|
result=mSink->OpenContainer(aNode);
|
||||||
mContextStack.InsertElementAt((void*)nodeType,mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)nodeType,mContextStackPos++);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2075,7 +2075,7 @@ PRInt32 CNavDTD::CloseContainer(const nsIParserNode& aNode,eHTMLTags aTag,PRBool
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mLeafBits.InsertElementAt((void*)PR_FALSE, mContextStackPos);
|
mLeafBits.ReplaceElementAt((void*)PR_FALSE, mContextStackPos);
|
||||||
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
|
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
|
||||||
UpdateStyleStackForCloseTag(nodeType,aTag);
|
UpdateStyleStackForCloseTag(nodeType,aTag);
|
||||||
}
|
}
|
||||||
|
@ -2306,7 +2306,7 @@ PRInt32 CNavDTD::UpdateStyleStackForOpenTag(eHTMLTags aTag,eHTMLTags anActualTag
|
||||||
case eHTMLTag_tt:
|
case eHTMLTag_tt:
|
||||||
case eHTMLTag_u:
|
case eHTMLTag_u:
|
||||||
case eHTMLTag_var:
|
case eHTMLTag_var:
|
||||||
mStyleStack.InsertElementAt((void*)aTag,mStyleStackPos++);
|
mStyleStack.ReplaceElementAt((void*)aTag,mStyleStackPos++);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eHTMLTag_h1: case eHTMLTag_h2:
|
case eHTMLTag_h1: case eHTMLTag_h2:
|
||||||
|
|
|
@ -1736,7 +1736,7 @@ PRInt32 COtherDTD::OpenHTML(const nsIParserNode& aNode){
|
||||||
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
||||||
|
|
||||||
PRInt32 result=mSink->OpenHTML(aNode);
|
PRInt32 result=mSink->OpenHTML(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1766,7 +1766,7 @@ PRInt32 COtherDTD::CloseHTML(const nsIParserNode& aNode){
|
||||||
* @return TRUE if ok, FALSE if error
|
* @return TRUE if ok, FALSE if error
|
||||||
*/
|
*/
|
||||||
PRInt32 COtherDTD::OpenHead(const nsIParserNode& aNode){
|
PRInt32 COtherDTD::OpenHead(const nsIParserNode& aNode){
|
||||||
mContextStack.InsertElementAt((void*)eHTMLTag_head,++mContextStackPos);
|
mContextStack.ReplaceElementAt((void*)eHTMLTag_head,++mContextStackPos);
|
||||||
PRInt32 result=mSink->OpenHead(aNode);
|
PRInt32 result=mSink->OpenHead(aNode);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1826,7 +1826,7 @@ PRInt32 COtherDTD::OpenBody(const nsIParserNode& aNode){
|
||||||
|
|
||||||
if(kNoError==result) {
|
if(kNoError==result) {
|
||||||
result=mSink->OpenBody(aNode);
|
result=mSink->OpenBody(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1933,7 +1933,7 @@ PRInt32 COtherDTD::CloseMap(const nsIParserNode& aNode){
|
||||||
PRInt32 COtherDTD::OpenFrameset(const nsIParserNode& aNode){
|
PRInt32 COtherDTD::OpenFrameset(const nsIParserNode& aNode){
|
||||||
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
NS_PRECONDITION(mContextStackPos >= 0, kInvalidTagStackPos);
|
||||||
PRInt32 result=mSink->OpenFrameset(aNode);
|
PRInt32 result=mSink->OpenFrameset(aNode);
|
||||||
mContextStack.InsertElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)aNode.GetNodeType(),mContextStackPos++);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1988,7 +1988,7 @@ PRInt32 COtherDTD::OpenContainer(const nsIParserNode& aNode,PRBool aUpdateStyleS
|
||||||
|
|
||||||
default:
|
default:
|
||||||
result=mSink->OpenContainer(aNode);
|
result=mSink->OpenContainer(aNode);
|
||||||
mContextStack.InsertElementAt((void*)nodeType,mContextStackPos++);
|
mContextStack.ReplaceElementAt((void*)nodeType,mContextStackPos++);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2040,7 +2040,7 @@ PRInt32 COtherDTD::CloseContainer(const nsIParserNode& aNode,eHTMLTags aTag,PRBo
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
mLeafBits.InsertElementAt((void*)PR_FALSE, mContextStackPos);
|
mLeafBits.ReplaceElementAt((void*)PR_FALSE, mContextStackPos);
|
||||||
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
|
if((kNoError==result) && (PR_TRUE==aUpdateStyles)){
|
||||||
UpdateStyleStackForCloseTag(nodeType,aTag);
|
UpdateStyleStackForCloseTag(nodeType,aTag);
|
||||||
}
|
}
|
||||||
|
@ -2271,7 +2271,7 @@ PRInt32 COtherDTD::UpdateStyleStackForOpenTag(eHTMLTags aTag,eHTMLTags anActualT
|
||||||
case eHTMLTag_tt:
|
case eHTMLTag_tt:
|
||||||
case eHTMLTag_u:
|
case eHTMLTag_u:
|
||||||
case eHTMLTag_var:
|
case eHTMLTag_var:
|
||||||
mStyleStack.InsertElementAt((void*)aTag,mStyleStackPos++);
|
mStyleStack.ReplaceElementAt((void*)aTag,mStyleStackPos++);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eHTMLTag_h1: case eHTMLTag_h2:
|
case eHTMLTag_h1: case eHTMLTag_h2:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче