Bug 1626570 - Improve handling of copying arrays in MozPromise. r=froydnj

Differential Revision: https://phabricator.services.mozilla.com/D73641
This commit is contained in:
Simon Giesecke 2020-05-05 13:01:43 +00:00
Родитель 792ed4cd28
Коммит 97d4011b9b
2 изменённых файлов: 5 добавлений и 4 удалений

Просмотреть файл

@ -247,7 +247,7 @@ TEST(MozPromise, PromiseAllResolve)
TestPromise::All(queue, promises)
->Then(
queue, __func__,
[queue](const nsTArray<int>& aResolveValues) -> void {
[queue](const CopyableTArray<int>& aResolveValues) -> void {
EXPECT_EQ(aResolveValues.Length(), 3UL);
EXPECT_EQ(aResolveValues[0], 22);
EXPECT_EQ(aResolveValues[1], 32);

Просмотреть файл

@ -284,7 +284,8 @@ class MozPromise : public MozPromiseBase {
return p;
}
typedef MozPromise<nsTArray<ResolveValueType>, RejectValueType, IsExclusive>
typedef MozPromise<CopyableTArray<ResolveValueType>, RejectValueType,
IsExclusive>
AllPromiseType;
private:
@ -341,8 +342,8 @@ class MozPromise : public MozPromiseBase {
nsISerialEventTarget* aProcessingTarget,
nsTArray<RefPtr<MozPromise>>& aPromises) {
if (aPromises.Length() == 0) {
return AllPromiseType::CreateAndResolve(nsTArray<ResolveValueType>(),
__func__);
return AllPromiseType::CreateAndResolve(
CopyableTArray<ResolveValueType>(), __func__);
}
RefPtr<AllPromiseHolder> holder = new AllPromiseHolder(aPromises.Length());