Skip to content
This repository was archived by the owner on Jul 9, 2025. It is now read-only.

Commit e3544b7

Browse files
committed
Bug 1938451. r=bbeurdouche,peterv
Differential Revision: https://phabricator.services.mozilla.com/D236428
1 parent c69f537 commit e3544b7

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

dom/mls/MLSGroupView.cpp

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -655,12 +655,13 @@ already_AddRefed<Promise> MLSGroupView::Details(ErrorResult& aRv) {
655655
rvalue.mType = MLSObjectType::Group_info;
656656
rvalue.mGroupId.Init(jsGroupId);
657657
rvalue.mGroupEpoch.Init(jsGroupEpoch);
658-
rvalue.mMembers.Clear();
658+
if (!rvalue.mMembers.SetCapacity(
659+
groupMembers->group_members.Length(), fallible)) {
660+
promise->MaybeReject(NS_ERROR_OUT_OF_MEMORY);
661+
return;
662+
}
659663

660-
Sequence<MLSGroupMember> membersSequence;
661-
for (size_t i = 0; i < groupMembers->group_members.Length(); ++i) {
662-
const GkClientIdentifiers& member =
663-
groupMembers->group_members[i];
664+
for (const auto& member : groupMembers->group_members) {
664665
JS::Rooted<JSObject*> jsClientId(
665666
cx, Uint8Array::Create(cx, member.identity, error));
666667
error.WouldReportJSException();
@@ -676,17 +677,12 @@ already_AddRefed<Promise> MLSGroupView::Details(ErrorResult& aRv) {
676677
return;
677678
}
678679

679-
MLSGroupMember jsMember;
680+
// Guaranteed not to fail because of the SetCapacity above.
681+
MLSGroupMember& jsMember =
682+
*rvalue.mMembers.AppendElement(fallible);
680683
jsMember.mClientId.Init(jsClientId);
681684
jsMember.mCredential.Init(jsCredential);
682-
683-
if (!membersSequence.AppendElement(std::move(jsMember),
684-
fallible)) {
685-
promise->MaybeReject(NS_ERROR_OUT_OF_MEMORY);
686-
return;
687-
}
688685
}
689-
rvalue.mMembers = std::move(membersSequence);
690686

691687
// Resolve the promise
692688
promise->MaybeResolve(rvalue);

0 commit comments

Comments
 (0)