2003-04-02 22:09:57 +00:00
|
|
|
/* $Id: malloc.c,v 1.4 2003/04/02 22:09:57 hyperion Exp $
|
2002-08-29 23:57:54 +00:00
|
|
|
*/
|
2002-06-18 22:16:53 +00:00
|
|
|
/*
|
2002-08-31 17:11:24 +00:00
|
|
|
* COPYRIGHT: None
|
|
|
|
* LICENSE: Public domain
|
2002-06-18 22:16:53 +00:00
|
|
|
* PROJECT: ReactOS system libraries
|
|
|
|
* FILE: reactos/lib/psapi/misc/malloc.c
|
|
|
|
* PURPOSE: Memory allocator for PSAPI
|
|
|
|
* PROGRAMMER: KJK::Hyperion <noog@libero.it>
|
|
|
|
* UPDATE HISTORY:
|
|
|
|
* 10/06/2002: Created
|
2003-04-02 22:09:57 +00:00
|
|
|
* 12/02/2003: malloc and free renamed to PsaiMalloc and PsaiFree,
|
|
|
|
* for better reusability
|
2002-06-18 22:16:53 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include <ddk/ntddk.h>
|
|
|
|
#include <napi/teb.h>
|
|
|
|
#include <ntos/heap.h>
|
|
|
|
|
|
|
|
PVOID STDCALL MemAlloc
|
|
|
|
(
|
|
|
|
IN HANDLE Heap,
|
|
|
|
IN PVOID Ptr,
|
|
|
|
IN ULONG Size
|
|
|
|
)
|
|
|
|
{
|
|
|
|
PVOID pBuf = NULL;
|
|
|
|
|
|
|
|
if(Size == 0 && Ptr == NULL)
|
|
|
|
return (NULL);
|
|
|
|
|
|
|
|
if(Heap == NULL)
|
|
|
|
Heap = NtCurrentPeb()->ProcessHeap;
|
|
|
|
|
|
|
|
if(Size > 0)
|
|
|
|
{
|
|
|
|
if(Ptr == NULL)
|
|
|
|
/* malloc */
|
|
|
|
pBuf = RtlAllocateHeap(Heap, 0, Size);
|
|
|
|
else
|
|
|
|
/* realloc */
|
|
|
|
pBuf = RtlReAllocateHeap(Heap, 0, Ptr, Size);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
/* free */
|
|
|
|
RtlFreeHeap(Heap, 0, Ptr);
|
|
|
|
|
|
|
|
return pBuf;
|
|
|
|
}
|
|
|
|
|
2003-04-02 22:09:57 +00:00
|
|
|
void *PsaiMalloc(SIZE_T size)
|
2002-06-18 22:16:53 +00:00
|
|
|
{
|
|
|
|
return MemAlloc(NULL, NULL, size);
|
|
|
|
}
|
|
|
|
|
2003-04-02 22:09:57 +00:00
|
|
|
void *PsaiRealloc(void *ptr, SIZE_T size)
|
2002-06-18 22:16:53 +00:00
|
|
|
{
|
|
|
|
return MemAlloc(NULL, ptr, size);
|
|
|
|
}
|
|
|
|
|
2003-04-02 22:09:57 +00:00
|
|
|
void PsaiFree(void *ptr)
|
2002-06-18 22:16:53 +00:00
|
|
|
{
|
|
|
|
MemAlloc(NULL, ptr, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* EOF */
|
|
|
|
|