]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
Refresh of nd-heap
authorSean Hefty <sean.hefty@intel.com>
Mon, 26 Jul 2010 21:53:58 +0000 (14:53 -0700)
committerSean Hefty <sean.hefty@intel.com>
Mon, 26 Jul 2010 21:53:58 +0000 (14:53 -0700)
trunk/ulp/netdirect2/user/nd_base.h
trunk/ulp/netdirect2/user/nd_main.cpp

index d11b1a0e41bc9e98e3ce970117cace48aa64bd30..07addbe2b72cfe3ea0487b6a676cbb82f4a705fd 100644 (file)
@@ -51,14 +51,16 @@ public:
 protected:\r
 };\r
 \r
+extern HANDLE g_hHeap;\r
+\r
 __inline void* __cdecl operator new(size_t size)\r
 {\r
-       return HeapAlloc(GetProcessHeap(), 0, size);\r
+       return HeapAlloc(g_hHeap, 0, size);\r
 }\r
 \r
 __inline void __cdecl operator delete(void *pObj)\r
 {\r
-       HeapFree(GetProcessHeap(), 0, pObj);\r
+       HeapFree(h_gHeap, 0, pObj);\r
 }\r
 \r
 HRESULT NDConvertWVStatus(HRESULT hr);\r
index a27764de2c61d1706a3d838fd7d70febd4a3bd2c..43c20091ffc4d7c69f6da663495d0ea5b1a9e021 100644 (file)
@@ -32,6 +32,7 @@
 #include <stdio.h>\r
 #include "nd_provider.h"\r
 \r
+HANDLE g_hHeap;\r
 \r
 extern "C" {\r
 \r
@@ -44,10 +45,19 @@ BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
 {\r
        switch (dwReason) {\r
        case DLL_PROCESS_ATTACH:\r
+               if (_DllMainCRTStartupForGS(hInstance, dwReason, lpReserved)) {\r
+                       return FALSE;\r
+               }\r
+\r
+               g_hHeap = HeapCreate(0, 0, 0);\r
+               return (g_hHeap != NULL);\r
        case DLL_PROCESS_DETACH:\r
+               if (g_hHeap != NULL) {\r
+                       HeapDestroy(g_hHeap);\r
+               }\r
                return _DllMainCRTStartupForGS(hInstance, dwReason, lpReserved);\r
        default:\r
-               return TRUE;\r
+               return FALSE;\r
        }\r
 }\r
 \r