mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 02:14:43 +00:00
Bug 1869726 - Part 4: Use latin1 JSExternalString for WebIDL UTF8String with ASCII case. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D198062
This commit is contained in:
parent
ffe3c178f0
commit
d55b0392db
@ -120,6 +120,11 @@ template <typename T, typename std::enable_if_t<std::is_same<
|
||||
inline bool AssignJSString(JSContext* cx, T& dest, JSString* s) {
|
||||
using namespace mozilla;
|
||||
CheckedInt<size_t> bufLen(JS::GetStringLength(s));
|
||||
|
||||
if (XPCStringConvert::MaybeAssignUTF8StringChars(s, bufLen.value(), dest)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// From the contract for JS_EncodeStringToUTF8BufferPartial, to guarantee that
|
||||
// the whole string is converted.
|
||||
if (JS::StringHasLatin1Chars(s)) {
|
||||
|
@ -2575,13 +2575,7 @@ inline bool ByteStringToJsval(JSContext* cx, const nsACString& str,
|
||||
// TODO(bug 1606957): This could probably be better.
|
||||
inline bool NonVoidUTF8StringToJsval(JSContext* cx, const nsACString& str,
|
||||
JS::MutableHandle<JS::Value> rval) {
|
||||
JSString* jsStr =
|
||||
JS_NewStringCopyUTF8N(cx, {str.BeginReading(), str.Length()});
|
||||
if (!jsStr) {
|
||||
return false;
|
||||
}
|
||||
rval.setString(jsStr);
|
||||
return true;
|
||||
return xpc::NonVoidUTF8StringToJsval(cx, str, rval);
|
||||
}
|
||||
|
||||
inline bool UTF8StringToJsval(JSContext* cx, const nsACString& str,
|
||||
|
Loading…
Reference in New Issue
Block a user