Bug 1373984 - Turn nsIDocument::mCharacterSet into mozilla::NotNull<const mozilla::Encoding*>. r=hsivonen
MozReview-Commit-ID: GF0YXDwfA14
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user