Bug 1442648 - Fix mismatched types in mingw-w64 builds (const char16_t*/char16ptr_t).

When cross-compiling for Windows on Linux, fix mismatched types in nsMsgImapSearch.cpp. nsString::get() returns a char16ptr_t (with MOZ_USE_CHAR16_WRAPPER) and that causes a mismatch so we cast it to a const char16_t*. usAsciiCharSet is declared as a nsAutoString so we instead declare it as a char16_t* to avoid subsequent type mismatches.

Tag #1273
This commit is contained in:
Matt A. Tobin 2019-11-10 21:16:23 -05:00 committed by Roy Tam
commit 3f68fdb0f4
2 changed files with 6 additions and 6 deletions

View file

@ -119,22 +119,22 @@ nsresult nsMsgSearchOnlineMail::Encode (nsCString& pEncoding,
rv = searchValue->GetStr(pchar);
if (NS_FAILED(rv) || pchar.IsEmpty())
continue;
asciiOnly = NS_IsAscii(pchar.get());
asciiOnly = NS_IsAscii(static_cast<const char16_t*>(pchar.get()));
}
}
}
// else
// asciiOnly = false; // TODO: enable this line when the condition is not a plain "true" in the if().
nsAutoString usAsciiCharSet(NS_LITERAL_STRING("us-ascii"));
const char16_t* usAsciiCharSet = u"us-ascii";
// Get the optional CHARSET parameter, in case we need it.
char *csname = GetImapCharsetParam(asciiOnly ? usAsciiCharSet.get() : destCharset);
char *csname = GetImapCharsetParam(asciiOnly ? usAsciiCharSet : destCharset);
// We do not need "srcCharset" since the search term in always unicode.
// I just pass destCharset for both src and dest charset instead of removing srcCharst from the arguemnt.
nsresult err = nsMsgSearchAdapter::EncodeImap (getter_Copies(imapTerms), searchTerms,
asciiOnly ? usAsciiCharSet.get(): destCharset,
asciiOnly ? usAsciiCharSet.get(): destCharset, false);
asciiOnly ? usAsciiCharSet : destCharset,
asciiOnly ? usAsciiCharSet : destCharset, false);
if (NS_SUCCEEDED(err))
{
pEncoding.Append("SEARCH");

View file

@ -975,7 +975,7 @@ RFC2231ParmFolding(const char *parmName, const nsCString& charset,
bool needEscape;
nsCString dupParm;
if (!NS_IsAscii(parmValue.get()) || is7bitCharset(charset)) {
if (!NS_IsAscii(static_cast<const char16_t*>(parmValue.get())) || is7bitCharset(charset)) {
needEscape = true;
nsAutoCString nativeParmValue;
ConvertFromUnicode(charset.get(), parmValue, nativeParmValue);