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:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user