diff --git a/dom/media/MediaPromise.h b/dom/media/MediaPromise.h index 2756844b5c..e7e9e1cebd 100644 --- a/dom/media/MediaPromise.h +++ b/dom/media/MediaPromise.h @@ -42,9 +42,18 @@ extern PRLogModuleInfo* gMediaPromiseLog; * When IsExclusive is true, the MediaPromise does a release-mode assertion that * there is at most one call to either Then(...) or ChainTo(...). */ + +class MediaPromiseBase +{ +public: + NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MediaPromiseBase) +protected: + virtual ~MediaPromiseBase() {} +}; + template class MediaPromiseHolder; template -class MediaPromise +class MediaPromise : public MediaPromiseBase { public: typedef ResolveValueT ResolveValueType; @@ -75,8 +84,6 @@ public: Maybe mRejectValue; }; - NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MediaPromise) - protected: // MediaPromise is the public type, and never constructed directly. Construct // a MediaPromise::Private, defined below. @@ -432,7 +439,7 @@ protected: } } - ~MediaPromise() + virtual ~MediaPromise() { PROMISE_LOG("MediaPromise::~MediaPromise [this=%p]", this); MOZ_ASSERT(!IsPending());