Bug 1213517 - Fix static analysis for
bug 1213517 landing: make constructor explicit.
MozReview-Commit-ID: 6k38HgsFmL2
--- a/dom/media/MediaManager.cpp
+++ b/dom/media/MediaManager.cpp
@@ -1342,21 +1342,21 @@ MediaManager::SelectSettings(
}
sources.Clear();
const char* badConstraint = nullptr;
bool needVideo = IsOn(aConstraints.mVideo);
bool needAudio = IsOn(aConstraints.mAudio);
if (needVideo && videos.Length()) {
badConstraint = MediaConstraintsHelper::SelectSettings(
- GetInvariant(aConstraints.mVideo), videos);
+ NormalizedConstraints(GetInvariant(aConstraints.mVideo)), videos);
}
if (!badConstraint && needAudio && audios.Length()) {
badConstraint = MediaConstraintsHelper::SelectSettings(
- GetInvariant(aConstraints.mAudio), audios);
+ NormalizedConstraints(GetInvariant(aConstraints.mAudio)), audios);
}
if (!badConstraint &&
!needVideo == !videos.Length() &&
!needAudio == !audios.Length()) {
for (auto& video : videos) {
sources.AppendElement(video);
}
for (auto& audio : audios) {
@@ -1446,31 +1446,31 @@ public:
if (mAudioDevice) {
auto& constraints = GetInvariant(mConstraints.mAudio);
rv = mAudioDevice->Allocate(constraints, mPrefs, mOrigin, &badConstraint);
if (NS_FAILED(rv)) {
errorMsg = "Failed to allocate audiosource";
if (rv == NS_ERROR_NOT_AVAILABLE && !badConstraint) {
nsTArray<RefPtr<AudioDevice>> audios;
audios.AppendElement(mAudioDevice);
- badConstraint = MediaConstraintsHelper::SelectSettings(constraints,
- audios);
+ badConstraint = MediaConstraintsHelper::SelectSettings(
+ NormalizedConstraints(constraints), audios);
}
}
}
if (!errorMsg && mVideoDevice) {
auto& constraints = GetInvariant(mConstraints.mVideo);
rv = mVideoDevice->Allocate(constraints, mPrefs, mOrigin, &badConstraint);
if (NS_FAILED(rv)) {
errorMsg = "Failed to allocate videosource";
if (rv == NS_ERROR_NOT_AVAILABLE && !badConstraint) {
nsTArray<RefPtr<VideoDevice>> videos;
videos.AppendElement(mVideoDevice);
- badConstraint = MediaConstraintsHelper::SelectSettings(constraints,
- videos);
+ badConstraint = MediaConstraintsHelper::SelectSettings(
+ NormalizedConstraints(constraints), videos);
}
if (mAudioDevice) {
mAudioDevice->Deallocate();
}
}
}
if (errorMsg) {
LOG(("%s %d", errorMsg, rv));
@@ -3451,26 +3451,26 @@ GetUserMediaCallbackMediaStreamListener:
const char* badConstraint = nullptr;
nsresult rv = NS_OK;
if (audioDevice) {
rv = audioDevice->Restart(aConstraints, mgr->mPrefs, &badConstraint);
if (rv == NS_ERROR_NOT_AVAILABLE && !badConstraint) {
nsTArray<RefPtr<AudioDevice>> audios;
audios.AppendElement(audioDevice);
- badConstraint = MediaConstraintsHelper::SelectSettings(aConstraints,
- audios);
+ badConstraint = MediaConstraintsHelper::SelectSettings(
+ NormalizedConstraints(aConstraints), audios);
}
} else {
rv = videoDevice->Restart(aConstraints, mgr->mPrefs, &badConstraint);
if (rv == NS_ERROR_NOT_AVAILABLE && !badConstraint) {
nsTArray<RefPtr<VideoDevice>> videos;
videos.AppendElement(videoDevice);
- badConstraint = MediaConstraintsHelper::SelectSettings(aConstraints,
- videos);
+ badConstraint = MediaConstraintsHelper::SelectSettings(
+ NormalizedConstraints(aConstraints), videos);
}
}
NS_DispatchToMainThread(NewRunnableFrom([id, windowId, rv,
badConstraint]() mutable {
MOZ_ASSERT(NS_IsMainThread());
RefPtr<MediaManager> mgr = MediaManager_GetInstance();
if (!mgr) {
return NS_OK;
--- a/dom/media/webrtc/MediaTrackConstraints.h
+++ b/dom/media/webrtc/MediaTrackConstraints.h
@@ -261,17 +261,17 @@ public:
};
template<> bool NormalizedConstraintSet::Range<bool>::Merge(const Range& aOther);
template<> void NormalizedConstraintSet::Range<bool>::FinalizeMerge();
// Used instead of MediaTrackConstraints in lower-level code.
struct NormalizedConstraints : public NormalizedConstraintSet
{
- NormalizedConstraints(const dom::MediaTrackConstraints& aOther,
+ explicit NormalizedConstraints(const dom::MediaTrackConstraints& aOther,
nsTArray<MemberPtrType>* aList = nullptr);
// Merge constructor
explicit NormalizedConstraints(
const nsTArray<const NormalizedConstraints*>& aOthers);
nsTArray<NormalizedConstraintSet> mAdvanced;
const char* mBadConstraint;