landing attempt #2 for 195262 - support for static atoms, and converting atoms over to UTF8 to reduce bloat - now without performance regressions!

sr=darin, r=dbaron


git-svn-id: svn://10.0.0.236/trunk@140260 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
alecf%netscape.com
2003-03-25 18:55:59 +00:00
parent 71d3e6e03f
commit f24ccb3da0
60 changed files with 766 additions and 501 deletions

View File

@@ -397,6 +397,8 @@ public:
nsString mBaseTarget;
nsICSSLoader *mCSSLoader;
// depth of containment within <noembed>, <noframes> etc
PRInt32 mInsideNoXXXTag;
PRInt32 mInMonolithicContainer;
PRUint32 mFlags;
@@ -1031,11 +1033,7 @@ NS_CreateHTMLElement(nsIHTMLContent** aResult, nsINodeInfo *aNodeInfo,
parserService->HTMLIdToStringTag(id, &tag);
NS_ASSERTION(tag, "What? Reverse mapping of id to string broken!!!");
const PRUnichar *name_str = nsnull;
name->GetUnicode(&name_str);
NS_ASSERTION(name_str, "What? No string in atom?!?");
if (nsCRT::strcmp(tag, name_str) != 0) {
if (!name->Equals(nsDependentString(tag))) {
nsCOMPtr<nsIAtom> atom = do_GetAtom(tag);
rv = aNodeInfo->NameChanged(atom, *getter_AddRefs(kungFuDeathGrip));
@@ -1710,14 +1708,13 @@ SinkContext::CloseContainer(const nsHTMLTag aTag)
// Tracing code
nsCOMPtr<nsIAtom> tag;
mStack[mStackPos].mContent->GetTag(*getter_AddRefs(tag));
const PRUnichar* tagChar;
tag->GetUnicode(&tagChar);
nsDependentString str(tagChar);
const char *tagStr;
tag->GetUTF8String(&tagStr);
SINK_TRACE(SINK_TRACE_REFLOW,
("SinkContext::CloseContainer: reflow on notifyImmediate "
"tag=%s newIndex=%d stackPos=%d",
NS_LossyConvertUCS2toASCII(str).get(),
tagStr,
mStack[mStackPos].mNumFlushed, mStackPos));
#endif
mSink->NotifyAppend(content, mStack[mStackPos].mNumFlushed);
@@ -2117,13 +2114,12 @@ SinkContext::FlushTags(PRBool aNotify)
// Tracing code
nsCOMPtr<nsIAtom> tag;
mStack[stackPos].mContent->GetTag(*getter_AddRefs(tag));
const PRUnichar* tagChar;
tag->GetUnicode(&tagChar);
nsDependentString str(tagChar);
const char* tagStr;
tag->GetUTF8String(&tagStr);
SINK_TRACE(SINK_TRACE_REFLOW,
("SinkContext::FlushTags: tag=%s from newindex=%d at "
"stackPos=%d", NS_LossyConvertUCS2toASCII(str).get(),
"stackPos=%d", tagStr,
mStack[stackPos].mNumFlushed, stackPos));
#endif
if ((mStack[stackPos].mInsertionPoint != -1) &&
@@ -5259,12 +5255,11 @@ HTMLContentSink::ProcessHeaderData(nsIAtom* aHeader, const nsAString& aValue,
if (NS_SUCCEEDED(mParser->GetChannel(getter_AddRefs(channel)))) {
nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel));
if (httpChannel) {
const PRUnichar *header = 0;
(void)aHeader->GetUnicode(&header);
(void)httpChannel->SetResponseHeader(
NS_ConvertUCS2toUTF8(header),
NS_ConvertUCS2toUTF8(aValue),
PR_TRUE);
const char* header;
(void)aHeader->GetUTF8String(&header);
(void)httpChannel->SetResponseHeader(nsDependentCString(header),
NS_ConvertUCS2toUTF8(aValue),
PR_TRUE);
}
}
}