@@ -655,12 +655,13 @@ already_AddRefed<Promise> MLSGroupView::Details(ErrorResult& aRv) {
655
655
rvalue.mType = MLSObjectType::Group_info;
656
656
rvalue.mGroupId .Init (jsGroupId);
657
657
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
+ }
659
663
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 ) {
664
665
JS::Rooted<JSObject*> jsClientId (
665
666
cx, Uint8Array::Create (cx, member.identity , error));
666
667
error.WouldReportJSException ();
@@ -676,17 +677,12 @@ already_AddRefed<Promise> MLSGroupView::Details(ErrorResult& aRv) {
676
677
return ;
677
678
}
678
679
679
- MLSGroupMember jsMember;
680
+ // Guaranteed not to fail because of the SetCapacity above.
681
+ MLSGroupMember& jsMember =
682
+ *rvalue.mMembers .AppendElement (fallible);
680
683
jsMember.mClientId .Init (jsClientId);
681
684
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
- }
688
685
}
689
- rvalue.mMembers = std::move (membersSequence);
690
686
691
687
// Resolve the promise
692
688
promise->MaybeResolve (rvalue);
0 commit comments