]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
nd2: use private heap
authorSean Hefty <sean.hefty@intel.com>
Tue, 27 Jul 2010 22:15:04 +0000 (22:15 +0000)
committerSean Hefty <sean.hefty@intel.com>
Tue, 27 Jul 2010 22:15:04 +0000 (22:15 +0000)
Replace the use of the application heap with a private heap.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2851 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

trunk/ulp/netdirect2/user/nd_base.h
trunk/ulp/netdirect2/user/nd_main.cpp

index d11b1a0e41bc9e98e3ce970117cace48aa64bd30..855fc673539b8b7d6fb6b3d09696ae32356d2b69 100644 (file)
@@ -1,5 +1,6 @@
 /*\r
- * Copyright (c) 2009 Intel Corporation. All rights reserved.\r
+ * Copyright (c) 2009-2010 Intel Corporation. All rights reserved.\r
+ * Copyright (c) 2010 Microsoft Corporation.  All rights reserved.\r
  *\r
  * This software is available to you under the OpenIB.org BSD license\r
  * below:\r
@@ -51,14 +52,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(g_hHeap, 0, pObj);\r
 }\r
 \r
 HRESULT NDConvertWVStatus(HRESULT hr);\r
index a27764de2c61d1706a3d838fd7d70febd4a3bd2c..6fde5de6e67a3b6aa4c985eeb8bdfce3a4f69b3e 100644 (file)
@@ -1,5 +1,6 @@
 /*\r
- * Copyright (c) 2009 Intel Corporation. All rights reserved.\r
+ * Copyright (c) 2009-2010 Intel Corporation. All rights reserved.\r
+ * Copyright (c) 2010 Microsoft Corporation.  All rights reserved.\r
  *\r
  * This software is available to you under the OpenIB.org BSD license\r
  * below:\r
@@ -32,6 +33,7 @@
 #include <stdio.h>\r
 #include "nd_provider.h"\r
 \r
+HANDLE g_hHeap;\r
 \r
 extern "C" {\r
 \r
@@ -44,10 +46,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