mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 08:15:31 +00:00
Bug 1644379 - Change DecodeString to return string by value. r=dom-workers-and-storage-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D78881
This commit is contained in:
parent
0f183e6ce2
commit
56ce33133e
@ -308,8 +308,7 @@ IDBResult<Key, IDBSpecialValue::Invalid> Key::ToLocaleAwareKey(
|
||||
const uint8_t typeOffset = *it - eString;
|
||||
MOZ_ASSERT((typeOffset % eArray == 0) && (typeOffset / eArray <= 2));
|
||||
|
||||
nsDependentString str;
|
||||
DecodeString(it, end, str);
|
||||
auto str = DecodeString(it, end);
|
||||
auto result = res.EncodeLocaleString(str, typeOffset, aLocale);
|
||||
if (NS_WARN_IF(!result.Is(Ok))) {
|
||||
return result.PropagateNotOk<Key>();
|
||||
@ -495,8 +494,7 @@ nsresult Key::DecodeJSValInternal(const EncodedDataType*& aPos,
|
||||
|
||||
aVal.setObject(*array);
|
||||
} else if (*aPos - aTypeOffset == eString) {
|
||||
nsString key;
|
||||
DecodeString(aPos, aEnd, key);
|
||||
auto key = DecodeString(aPos, aEnd);
|
||||
if (!xpc::StringToJsval(aCx, key, aVal)) {
|
||||
IDB_REPORT_INTERNAL_ERR();
|
||||
return NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR;
|
||||
@ -624,8 +622,7 @@ IDBResult<void, IDBSpecialValue::Invalid> Key::EncodeAsString(
|
||||
}
|
||||
|
||||
IDBResult<void, IDBSpecialValue::Invalid> Key::EncodeLocaleString(
|
||||
const nsDependentString& aString, uint8_t aTypeOffset,
|
||||
const nsCString& aLocale) {
|
||||
const nsAString& aString, uint8_t aTypeOffset, const nsCString& aLocale) {
|
||||
const int length = aString.Length();
|
||||
if (length == 0) {
|
||||
return Ok();
|
||||
@ -751,16 +748,16 @@ void Key::DecodeStringy(const EncodedDataType*& aPos,
|
||||
}
|
||||
|
||||
// static
|
||||
void Key::DecodeString(const EncodedDataType*& aPos,
|
||||
const EncodedDataType* const aEnd, nsString& aString) {
|
||||
MOZ_ASSERT(aString.IsEmpty(), "aString should be empty on call!");
|
||||
|
||||
nsAutoString Key::DecodeString(const EncodedDataType*& aPos,
|
||||
const EncodedDataType* const aEnd) {
|
||||
nsAutoString res;
|
||||
DecodeStringy<eString, char16_t>(
|
||||
aPos, aEnd,
|
||||
[&aString](char16_t** out, uint32_t decodedLength) {
|
||||
return 0 != aString.GetMutableData(out, decodedLength);
|
||||
[&res](char16_t** out, uint32_t decodedLength) {
|
||||
return 0 != res.GetMutableData(out, decodedLength);
|
||||
},
|
||||
[] {});
|
||||
return res;
|
||||
}
|
||||
|
||||
void Key::EncodeNumber(double aFloat, uint8_t aType) {
|
||||
|
@ -132,8 +132,7 @@ class Key {
|
||||
nsAutoString ToString() const {
|
||||
MOZ_ASSERT(IsString());
|
||||
const EncodedDataType* pos = BufferStart();
|
||||
nsAutoString res;
|
||||
DecodeString(pos, BufferEnd(), res);
|
||||
auto res = DecodeString(pos, BufferEnd());
|
||||
MOZ_ASSERT(pos >= BufferEnd());
|
||||
return res;
|
||||
}
|
||||
@ -230,8 +229,7 @@ class Key {
|
||||
uint8_t aType);
|
||||
|
||||
IDBResult<void, IDBSpecialValue::Invalid> EncodeLocaleString(
|
||||
const nsDependentString& aString, uint8_t aTypeOffset,
|
||||
const nsCString& aLocale);
|
||||
const nsAString& aString, uint8_t aTypeOffset, const nsCString& aLocale);
|
||||
|
||||
void EncodeNumber(double aFloat, uint8_t aType);
|
||||
|
||||
@ -245,8 +243,8 @@ class Key {
|
||||
const EncodedDataType* aEnd, JSContext* aCx,
|
||||
JS::MutableHandle<JS::Value> aVal);
|
||||
|
||||
static void DecodeString(const EncodedDataType*& aPos,
|
||||
const EncodedDataType* aEnd, nsString& aString);
|
||||
static nsAutoString DecodeString(const EncodedDataType*& aPos,
|
||||
const EncodedDataType* aEnd);
|
||||
|
||||
static double DecodeNumber(const EncodedDataType*& aPos,
|
||||
const EncodedDataType* aEnd);
|
||||
|
Loading…
Reference in New Issue
Block a user