mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-29 04:13:32 +00:00
New and delete operators
svn path=/trunk/; revision=4188
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
; $Id: msvcrt.def,v 1.17 2002/12/26 17:26:41 robd Exp $
|
||||
; $Id: msvcrt.def,v 1.18 2003/02/21 21:50:04 jfilby Exp $
|
||||
;
|
||||
; ReactOS MSVCRT Compatibility Library
|
||||
;
|
||||
@@ -22,8 +22,10 @@ EXPORTS
|
||||
; ??1bad_typeid@@UAE@XZ
|
||||
; ??1exception@@UAE@XZ
|
||||
; ??1type_info@@UAE@XZ
|
||||
; ??2@YAPAXI@Z
|
||||
; ??3@YAXPAX@Z
|
||||
??2@YAPAXI@Z=MSVCRT_operator_new
|
||||
??_U@YAPAXI@Z=MSVCRT_operator_new
|
||||
??3@YAXPAX@Z=MSVCRT_operator_delete
|
||||
??_V@YAXPAX@Z=MSVCRT_operator_delete
|
||||
; ??4__non_rtti_object@@QAEAAV0@ABV0@@Z
|
||||
; ??4bad_cast@@QAEAAV0@ABV0@@Z
|
||||
; ??4bad_typeid@@QAEAAV0@ABV0@@Z
|
||||
|
||||
@@ -3,6 +3,28 @@
|
||||
|
||||
extern HANDLE hHeap;
|
||||
|
||||
typedef void (*MSVCRT_new_handler_func)(unsigned long size);
|
||||
static MSVCRT_new_handler_func MSVCRT_new_handler;
|
||||
|
||||
/* ??2@YAPAXI@Z (MSVCRT.@) */
|
||||
void* MSVCRT_operator_new(unsigned long size)
|
||||
{
|
||||
void *retval = HeapAlloc(GetProcessHeap(), 0, size);
|
||||
|
||||
/* FIXME: LOCK_HEAP; */
|
||||
if(!retval && MSVCRT_new_handler)
|
||||
(*MSVCRT_new_handler)(size);
|
||||
/* FIXME: UNLOCK_HEAP; */
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* ??3@YAXPAX@Z (MSVCRT.@) */
|
||||
void MSVCRT_operator_delete(void *mem)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, mem);
|
||||
}
|
||||
|
||||
void* malloc(size_t _size)
|
||||
{
|
||||
return HeapAlloc(hHeap, HEAP_ZERO_MEMORY, _size);
|
||||
@@ -19,6 +41,6 @@ void* calloc(size_t _nmemb, size_t _size)
|
||||
}
|
||||
|
||||
void* realloc(void* _ptr, size_t _size)
|
||||
{
|
||||
{
|
||||
return HeapReAlloc(hHeap, 0, _ptr, _size);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user