Bug 1430149 - Fix AsyncInvoker.h compilation on mingw. r=aklotz
authorJacek Caban <jacek@codeweavers.com>
Mon, 07 Jan 2019 21:52:57 +0000
changeset 510030 9e200f5673a3ff01ba2b27dbcf074d5ba86c978e
parent 510029 e0a5cb126f2f084e5f7f3d5f0be0222a7fd67479
child 510031 869f7e9a19c31149b9a95db5b0101179e34d940b
push id10547
push userffxbld-merge
push dateMon, 21 Jan 2019 13:03:58 +0000
treeherdermozilla-beta@24ec1916bffe [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersaklotz
bugs1430149
milestone66.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1430149 - Fix AsyncInvoker.h compilation on mingw. r=aklotz MozReview-Commit-ID: FIswvwMzGdC Differential Revision: https://phabricator.services.mozilla.com/D15325
ipc/mscom/AsyncInvoker.h
--- a/ipc/mscom/AsyncInvoker.h
+++ b/ipc/mscom/AsyncInvoker.h
@@ -100,17 +100,17 @@ class ForgettableAsyncCall : public ISyn
   RefPtr<IUnknown> mInnerUnk;
   AsyncInterface* mAsyncCall;  // weak reference
 };
 
 template <typename AsyncInterface>
 class WaitableAsyncCall : public ForgettableAsyncCall<AsyncInterface> {
  public:
   explicit WaitableAsyncCall(ICallFactory* aCallFactory)
-      : ForgettableAsyncCall(aCallFactory),
+      : ForgettableAsyncCall<AsyncInterface>(aCallFactory),
         mEvent(::CreateEventW(nullptr, FALSE, FALSE, nullptr)) {}
 
   STDMETHODIMP Wait(DWORD aFlags, DWORD aTimeoutMilliseconds) override {
     const DWORD waitStart =
         aTimeoutMilliseconds == INFINITE ? 0 : ::GetTickCount();
     DWORD flags = aFlags;
     if (XRE_IsContentProcess() && NS_IsMainThread()) {
       flags |= COWAIT_ALERTABLE;
@@ -329,11 +329,11 @@ using WaitableAsyncInvoker =
 
 #define WAITABLE_ASYNC_INVOKER_FOR(SyncIface) \
   mozilla::mscom::WaitableAsyncInvoker<SyncIface, Async##SyncIface>
 
 #define ASYNC_INVOKE(InvokerObj, SyncMethodName, ...)                 \
   InvokerObj.Invoke(                                                  \
       &decltype(InvokerObj)::SyncInterfaceT::SyncMethodName,          \
       &decltype(InvokerObj)::AsyncInterfaceT::Begin_##SyncMethodName, \
-      __VA_ARGS__)
+      ##__VA_ARGS__)
 
 #endif  // mozilla_mscom_AsyncInvoker_h