- Go away STDCALL, time has come for WINAPI and NTAPI
[reactos.git] / reactos / dll / win32 / psapi / malloc.c
1 /* $Id$
2 */
3 /*
4 * COPYRIGHT: None
5 * LICENSE: Public domain
6 * PROJECT: ReactOS system libraries
7 * FILE: reactos/lib/psapi/misc/malloc.c
8 * PURPOSE: Memory allocator for PSAPI
9 * PROGRAMMER: KJK::Hyperion <noog@libero.it>
10 * UPDATE HISTORY:
11 * 10/06/2002: Created
12 * 12/02/2003: malloc and free renamed to PsaiMalloc and PsaiFree,
13 * for better reusability
14 */
15
16 #include "precomp.h"
17
18 #define NDEBUG
19 #include <debug.h>
20
21 PVOID
22 WINAPI
23 MemAlloc(IN HANDLE Heap,
24 IN PVOID Ptr,
25 IN ULONG Size)
26 {
27 PVOID pBuf = NULL;
28
29 if(Size == 0 && Ptr == NULL)
30 {
31 return NULL;
32 }
33
34 if(Heap == NULL)
35 {
36 Heap = NtCurrentPeb()->ProcessHeap;
37 }
38
39 if(Size > 0)
40 {
41 if(Ptr == NULL)
42 /* malloc */
43 pBuf = RtlAllocateHeap(Heap, 0, Size);
44 else
45 /* realloc */
46 pBuf = RtlReAllocateHeap(Heap, 0, Ptr, Size);
47 }
48 else
49 /* free */
50 RtlFreeHeap(Heap, 0, Ptr);
51
52 return pBuf;
53 }
54
55 void *PsaiMalloc(SIZE_T size)
56 {
57 return MemAlloc(NULL, NULL, size);
58 }
59
60 void *PsaiRealloc(void *ptr, SIZE_T size)
61 {
62 return MemAlloc(NULL, ptr, size);
63 }
64
65 void PsaiFree(void *ptr)
66 {
67 MemAlloc(NULL, ptr, 0);
68 }
69
70 /* EOF */
71