Bug 1373984 - Turn nsIDocument::mCharacterSet into mozilla::NotNull<const mozilla::Encoding*>. r=hsivonen

MozReview-Commit-ID: GF0YXDwfA14
This commit is contained in:
Masatoshi Kimura
2017-06-18 20:37:50 +09:00
parent 1e1b8f5032
commit d3e74dcb2d
81 changed files with 581 additions and 448 deletions

View File

@@ -93,26 +93,18 @@ nsScanner::nsScanner(nsString& aFilename, bool aCreateStream)
mUnicodeDecoder = nullptr;
mCharsetSource = kCharsetUninitialized;
// XML defaults to UTF-8 and about:blank is UTF-8, too.
SetDocumentCharset(NS_LITERAL_CSTRING("UTF-8"), kCharsetFromDocTypeDefault);
SetDocumentCharset(UTF_8_ENCODING, kCharsetFromDocTypeDefault);
}
nsresult nsScanner::SetDocumentCharset(const nsACString& aCharset , int32_t aSource)
nsresult nsScanner::SetDocumentCharset(NotNull<const Encoding*> aEncoding,
int32_t aSource)
{
if (aSource < mCharsetSource) // priority is lower than the current one
return NS_OK;
mCharsetSource = aSource;
const Encoding* encoding;
if (aCharset.EqualsLiteral("replacement")) {
encoding = REPLACEMENT_ENCODING;
} else {
encoding = Encoding::ForLabel(aCharset);
MOZ_ASSERT(encoding, "Should never call with a bogus aCharset.");
}
nsCString charsetName;
encoding->Name(charsetName);
aEncoding->Name(charsetName);
if (!mCharset.IsEmpty() && charsetName.Equals(mCharset)) {
return NS_OK; // no difference, don't change it
}
@@ -121,7 +113,7 @@ nsresult nsScanner::SetDocumentCharset(const nsACString& aCharset , int32_t aSou
mCharset.Assign(charsetName);
mUnicodeDecoder = encoding->NewDecoderWithBOMRemoval();
mUnicodeDecoder = aEncoding->NewDecoderWithBOMRemoval();
return NS_OK;
}