From 603b880e70e56075ba17ae0abdc3c168a3f3af2e Mon Sep 17 00:00:00 2001 From: Andrew Creskey Date: Thu, 14 Nov 2019 14:06:12 +0000 Subject: [PATCH] Bug 1592797 - Fix MediaKeys linker error exposed with different optimization flags r=edgar Seeing this linker error when building with optimization flags -O2 and others: .../mozilla-central/dom/media/eme/mediadrm/MediaDrmCDMProxy.cpp:297: error: undefined reference to 'void mozilla::dom::MediaKeys::ResolvePromiseWithResult(unsigned int, bool const&)' This patch moves the template definition from dom/media/eme/MediaKeys.cpp to dom/media/eme/MediaKeys.h Differential Revision: https://phabricator.services.mozilla.com/D51188 --HG-- extra : moz-landing-system : lando --- dom/media/eme/MediaKeys.cpp | 10 ---------- dom/media/eme/MediaKeys.h | 8 +++++++- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/dom/media/eme/MediaKeys.cpp b/dom/media/eme/MediaKeys.cpp index c8f1be6121d3..d8ed982e8eae 100644 --- a/dom/media/eme/MediaKeys.cpp +++ b/dom/media/eme/MediaKeys.cpp @@ -569,16 +569,6 @@ void MediaKeys::OnSessionLoaded(PromiseId aId, bool aSuccess) { ResolvePromiseWithResult(aId, aSuccess); } -template -void MediaKeys::ResolvePromiseWithResult(PromiseId aId, const T& aResult) { - RefPtr promise(RetrievePromise(aId)); - if (!promise) { - return; - } - - promise->MaybeResolve(aResult); -} - void MediaKeys::OnSessionClosed(MediaKeySession* aSession) { nsAutoString id; aSession->GetSessionId(id); diff --git a/dom/media/eme/MediaKeys.h b/dom/media/eme/MediaKeys.h index ba9a110c325d..71396286c900 100644 --- a/dom/media/eme/MediaKeys.h +++ b/dom/media/eme/MediaKeys.h @@ -149,7 +149,13 @@ class MediaKeys final : public nsIDocumentActivity, dom::MediaKeyStatus aMediaKeyStatus); template - void ResolvePromiseWithResult(PromiseId aId, const T& aResult); + void ResolvePromiseWithResult(PromiseId aId, const T& aResult) { + RefPtr promise(RetrievePromise(aId)); + if (!promise) { + return; + } + promise->MaybeResolve(aResult); + } private: // Instantiate CDMProxy instance.