Bug 1460022: Part 6 - Update GMP code to work with new DLL interceptor interface; r=cpearce
☠☠ backed out by 3a415f165864 ☠ ☠
authorAaron Klotz <aklotz@mozilla.com>
Wed, 27 Jun 2018 11:49:49 -0600
changeset 480034 867a1351efffcc0a3b4cab364e518d8f4d5d5983
parent 480033 933e0b698f8e8efb7706702e8c3565ba6449406e
child 480035 18f8f85c03076707495a7e55929eba3bd3164214
push id9719
push userffxbld-merge
push dateFri, 24 Aug 2018 17:49:46 +0000
treeherdermozilla-beta@719ec98fba77 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerscpearce
bugs1460022
milestone63.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 1460022: Part 6 - Update GMP code to work with new DLL interceptor interface; r=cpearce
dom/media/gmp/ChromiumCDMAdapter.cpp
--- a/dom/media/gmp/ChromiumCDMAdapter.cpp
+++ b/dom/media/gmp/ChromiumCDMAdapter.cpp
@@ -192,17 +192,18 @@ ChromiumCDMAdapter::Supports(int32_t aMo
 #ifdef XP_WIN
 
 static WindowsDllInterceptor sKernel32Intercept;
 
 typedef DWORD(WINAPI* QueryDosDeviceWFnPtr)(_In_opt_ LPCWSTR lpDeviceName,
                                             _Out_ LPWSTR lpTargetPath,
                                             _In_ DWORD ucchMax);
 
-static QueryDosDeviceWFnPtr sOriginalQueryDosDeviceWFnPtr = nullptr;
+static WindowsDllInterceptor::FuncHookType<QueryDosDeviceWFnPtr>
+  sOriginalQueryDosDeviceWFnPtr;
 
 static std::unordered_map<std::wstring, std::wstring>* sDeviceNames = nullptr;
 
 DWORD WINAPI
 QueryDosDeviceWHook(LPCWSTR lpDeviceName, LPWSTR lpTargetPath, DWORD ucchMax)
 {
   if (!sDeviceNames) {
     return 0;
@@ -271,19 +272,18 @@ InitializeHooks()
   }
   initialized = true;
   sDeviceNames = new std::unordered_map<std::wstring, std::wstring>();
   for (const std::wstring& name : GetDosDeviceNames()) {
     sDeviceNames->emplace(name, GetDeviceMapping(name));
   }
 
   sKernel32Intercept.Init("kernelbase.dll");
-  sKernel32Intercept.AddHook("QueryDosDeviceW",
-                             reinterpret_cast<intptr_t>(QueryDosDeviceWHook),
-                             (void**)(&sOriginalQueryDosDeviceWFnPtr));
+  sOriginalQueryDosDeviceWFnPtr.Set(sKernel32Intercept, "QueryDosDeviceW",
+                                    &QueryDosDeviceWHook);
 }
 #endif
 
 HostFile::HostFile(HostFile&& aOther)
   : mPath(aOther.mPath)
   , mFile(aOther.TakePlatformFile())
 {
 }