diff --git a/Misc/NEWS.d/next/Windows/2019-10-04-03-46-36.bpo-37025.tLheEe.rst b/Misc/NEWS.d/next/Windows/2019-10-04-03-46-36.bpo-37025.tLheEe.rst new file mode 100644 index 00000000000000..7c0f9dc017705d --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2019-10-04-03-46-36.bpo-37025.tLheEe.rst @@ -0,0 +1,2 @@ +``AddRefActCtx()`` was needlessly being checked for failure in +``PC/dl_nt.c``. diff --git a/PC/dl_nt.c b/PC/dl_nt.c index ef1ce0934c1864..3e58bacb55ff2c 100644 --- a/PC/dl_nt.c +++ b/PC/dl_nt.c @@ -33,8 +33,8 @@ const char *PyWin_DLLVersionString = dllVersionBuffer; typedef BOOL (WINAPI * PFN_GETCURRENTACTCTX)(HANDLE *); typedef BOOL (WINAPI * PFN_ACTIVATEACTCTX)(HANDLE, ULONG_PTR *); typedef BOOL (WINAPI * PFN_DEACTIVATEACTCTX)(DWORD, ULONG_PTR); -typedef BOOL (WINAPI * PFN_ADDREFACTCTX)(HANDLE); -typedef BOOL (WINAPI * PFN_RELEASEACTCTX)(HANDLE); +typedef void (WINAPI * PFN_ADDREFACTCTX)(HANDLE); +typedef void (WINAPI * PFN_RELEASEACTCTX)(HANDLE); // locals and function pointers for this activation context magic. static HANDLE PyWin_DLLhActivationContext = NULL; // one day it might be public @@ -90,9 +90,14 @@ BOOL WINAPI DllMain (HANDLE hInst, // and capture our activation context for use when loading extensions. _LoadActCtxPointers(); if (pfnGetCurrentActCtx && pfnAddRefActCtx) - if ((*pfnGetCurrentActCtx)(&PyWin_DLLhActivationContext)) - if (!(*pfnAddRefActCtx)(PyWin_DLLhActivationContext)) - OutputDebugString("Python failed to load the default activation context\n"); + if ((*pfnGetCurrentActCtx)(&PyWin_DLLhActivationContext)) { + (*pfnAddRefActCtx)(PyWin_DLLhActivationContext); + } + else { + OutputDebugString("Python failed to load the default " + "activation context\n"); + return FALSE; + } break; case DLL_PROCESS_DETACH: