update for HEAD-2003050101
[reactos.git] / lib / psapi / misc / 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 <ddk/ntddk.h>
17 #include <napi/teb.h>
18 #include <ntos/heap.h>
19
20 PVOID STDCALL MemAlloc
21 (
22  IN HANDLE Heap,
23  IN PVOID Ptr,
24  IN ULONG Size
25 )
26 {
27  PVOID pBuf = NULL;
28
29  if(Size == 0 && Ptr == NULL)
30   return (NULL);
31   
32  if(Heap == NULL)
33   Heap = NtCurrentPeb()->ProcessHeap;
34  
35  if(Size > 0)
36  {
37   if(Ptr == NULL)
38    /* malloc */
39    pBuf = RtlAllocateHeap(Heap, 0, Size);
40   else
41    /* realloc */
42    pBuf = RtlReAllocateHeap(Heap, 0, Ptr, Size);
43  }
44  else
45   /* free */
46   RtlFreeHeap(Heap, 0, Ptr);
47
48  return pBuf;
49 }
50
51 void *PsaiMalloc(SIZE_T size)
52 {
53  return MemAlloc(NULL, NULL, size);
54 }
55
56 void *PsaiRealloc(void *ptr, SIZE_T size)
57 {
58  return MemAlloc(NULL, ptr, size);
59 }
60
61 void PsaiFree(void *ptr)
62 {
63  MemAlloc(NULL, ptr, 0);
64 }
65
66 /* EOF */
67