2 #include <msvcrt/stdlib.h>
6 typedef void (*MSVCRT_new_handler_func)(unsigned long size);
7 static MSVCRT_new_handler_func MSVCRT_new_handler;
8 static int MSVCRT_new_mode;
10 /* ??2@YAPAXI@Z (MSVCRT.@) */
11 void* MSVCRT_operator_new(unsigned long size)
13 void *retval = HeapAlloc(GetProcessHeap(), 0, size);
15 /* FIXME: LOCK_HEAP; */
16 if(!retval && MSVCRT_new_handler)
17 (*MSVCRT_new_handler)(size);
18 /* FIXME: UNLOCK_HEAP; */
23 /* ??3@YAXPAX@Z (MSVCRT.@) */
24 void MSVCRT_operator_delete(void *mem)
26 HeapFree(GetProcessHeap(), 0, mem);
29 /* ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z (MSVCRT.@) */
30 MSVCRT_new_handler_func MSVCRT__set_new_handler(MSVCRT_new_handler_func func)
32 MSVCRT_new_handler_func old_handler;
33 /* FIXME: LOCK_HEAP; */
34 old_handler = MSVCRT_new_handler;
35 MSVCRT_new_handler = func;
36 /* FIXME: UNLOCK_HEAP; */
40 void* malloc(size_t _size)
42 return HeapAlloc(hHeap, HEAP_ZERO_MEMORY, _size);
47 HeapFree(hHeap,0,_ptr);
50 void* calloc(size_t _nmemb, size_t _size)
52 return HeapAlloc(hHeap, HEAP_ZERO_MEMORY, _nmemb*_size);
55 void* realloc(void* _ptr, size_t _size)
57 return HeapReAlloc(hHeap, 0, _ptr, _size);
60 /* ?_set_new_mode@@YAHH@Z (MSVCRT.@) */
61 int MSVCRT__set_new_mode(int mode)
64 /* FIXME: LOCK_HEAP; */
65 old_mode = MSVCRT_new_mode;
66 MSVCRT_new_mode = mode;
67 /* FIXME: UNLOCK_HEAP; */