From: Sean Hefty Date: Mon, 26 Jul 2010 21:53:58 +0000 (-0700) Subject: Refresh of nd-heap X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=6422820fae706c1d0d0e898b334e02fb510e2536;p=~shefty%2Frdma-win.git Refresh of nd-heap --- diff --git a/trunk/ulp/netdirect2/user/nd_base.h b/trunk/ulp/netdirect2/user/nd_base.h index d11b1a0e..07addbe2 100644 --- a/trunk/ulp/netdirect2/user/nd_base.h +++ b/trunk/ulp/netdirect2/user/nd_base.h @@ -51,14 +51,16 @@ public: protected: }; +extern HANDLE g_hHeap; + __inline void* __cdecl operator new(size_t size) { - return HeapAlloc(GetProcessHeap(), 0, size); + return HeapAlloc(g_hHeap, 0, size); } __inline void __cdecl operator delete(void *pObj) { - HeapFree(GetProcessHeap(), 0, pObj); + HeapFree(h_gHeap, 0, pObj); } HRESULT NDConvertWVStatus(HRESULT hr); diff --git a/trunk/ulp/netdirect2/user/nd_main.cpp b/trunk/ulp/netdirect2/user/nd_main.cpp index a27764de..43c20091 100644 --- a/trunk/ulp/netdirect2/user/nd_main.cpp +++ b/trunk/ulp/netdirect2/user/nd_main.cpp @@ -32,6 +32,7 @@ #include #include "nd_provider.h" +HANDLE g_hHeap; extern "C" { @@ -44,10 +45,19 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { switch (dwReason) { case DLL_PROCESS_ATTACH: + if (_DllMainCRTStartupForGS(hInstance, dwReason, lpReserved)) { + return FALSE; + } + + g_hHeap = HeapCreate(0, 0, 0); + return (g_hHeap != NULL); case DLL_PROCESS_DETACH: + if (g_hHeap != NULL) { + HeapDestroy(g_hHeap); + } return _DllMainCRTStartupForGS(hInstance, dwReason, lpReserved); default: - return TRUE; + return FALSE; } }