Bug 1444354: Fixed intermittent in RsdparsaSdpAttributeList::GetGroup, r=dminor draft
authorJohannes Willbold <j.willbold@mozilla.com>
Tue, 03 Jul 2018 17:28:17 -0700
changeset 814190 92e221ce5e437bf5a994740f3b34f7336668e431
parent 813837 987ea0d6a000b95cf93928b25a74a7fb1dfe37b2
push id115126
push userbmo:johannes.willbold@rub.de
push dateWed, 04 Jul 2018 18:10:07 +0000
reviewersdminor
bugs1444354
milestone63.0a1
Bug 1444354: Fixed intermittent in RsdparsaSdpAttributeList::GetGroup, r=dminor Fixed the signature of the sdp_get_groups function in the C++/Rust glue code. MozReview-Commit-ID: PljpUKk829
media/webrtc/signaling/gtest/sdp_unittests.cpp
media/webrtc/signaling/src/sdp/RsdparsaSdpAttributeList.cpp
media/webrtc/signaling/src/sdp/RsdparsaSdpInc.h
--- a/media/webrtc/signaling/gtest/sdp_unittests.cpp
+++ b/media/webrtc/signaling/gtest/sdp_unittests.cpp
@@ -2961,18 +2961,16 @@ TEST_P(NewSdpTest, CheckMediaLevelIcePwd
 
   ASSERT_TRUE(mSdp->GetMediaSection(1).GetAttributeList().HasAttribute(
         SdpAttribute::kIcePwdAttribute));
   ASSERT_EQ("e4cc12a910f106a0a744719425510e17",
             mSdp->GetMediaSection(1).GetAttributeList().GetIcePwd());
 }
 
 TEST_P(NewSdpTest, CheckGroups) {
-  SKIP_TEST_WITH_RUST_PARSER; // See Bug 1444354
-
   ParseSdp(kBasicAudioVideoOffer);
   const SdpGroupAttributeList& group = mSdp->GetAttributeList().GetGroup();
   const SdpGroupAttributeList::Group& group1 = group.mGroups[0];
   ASSERT_EQ(SdpGroupAttributeList::kBundle, group1.semantics);
   ASSERT_EQ(2U, group1.tags.size());
   ASSERT_EQ("first", group1.tags[0]);
   ASSERT_EQ("second", group1.tags[1]);
 
--- a/media/webrtc/signaling/src/sdp/RsdparsaSdpAttributeList.cpp
+++ b/media/webrtc/signaling/src/sdp/RsdparsaSdpAttributeList.cpp
@@ -861,20 +861,17 @@ RsdparsaSdpAttributeList::LoadMsidSemant
 void
 RsdparsaSdpAttributeList::LoadGroup(RustAttributeList* attributeList)
 {
   size_t numGroup = sdp_get_group_count(attributeList);
   if (numGroup == 0) {
     return;
   }
   auto rustGroups = MakeUnique<RustSdpAttributeGroup[]>(numGroup);
-  nsresult nr = sdp_get_groups(attributeList, numGroup, rustGroups.get());
-  if (NS_FAILED(nr)) {
-    return;
-  }
+  sdp_get_groups(attributeList, numGroup, rustGroups.get());
   auto groups = MakeUnique<SdpGroupAttributeList>();
   for(size_t i = 0; i < numGroup; i++) {
     RustSdpAttributeGroup& group = rustGroups[i];
     SdpGroupAttributeList::Semantics semantic;
     switch(group.semantic) {
       case RustSdpAttributeGroupSemantic ::kRustLipSynchronization:
         semantic = SdpGroupAttributeList::kLs;
         break;
--- a/media/webrtc/signaling/src/sdp/RsdparsaSdpInc.h
+++ b/media/webrtc/signaling/src/sdp/RsdparsaSdpInc.h
@@ -344,17 +344,17 @@ size_t sdp_get_msid_count(const RustAttr
 void sdp_get_msids(const RustAttributeList* aList, size_t listSize,
                    RustSdpAttributeMsid* ret);
 
 size_t sdp_get_msid_semantic_count(RustAttributeList* aList);
 void sdp_get_msid_semantics(const RustAttributeList* aList, size_t listSize,
                             RustSdpAttributeMsidSemantic* ret);
 
 size_t sdp_get_group_count(const RustAttributeList* aList);
-nsresult sdp_get_groups(const RustAttributeList* aList, size_t listSize,
+void sdp_get_groups(const RustAttributeList* aList, size_t listSize,
                         RustSdpAttributeGroup* ret);
 
 nsresult sdp_get_rtcp(const RustAttributeList* aList,
                       RustSdpAttributeRtcp* ret);
 
 
 size_t sdp_get_rtcpfb_count(const RustAttributeList* aList);
 void sdp_get_rtcpfbs(const RustAttributeList* aList, size_t listSize,