32#define LOCK_HEAP _lock( _HEAP_LOCK )
33#define UNLOCK_HEAP _unlock( _HEAP_LOCK )
36#define SAVED_PTR(x) ((void *)((DWORD_PTR)((char *)x - sizeof(void *)) & \
37 ~(sizeof(void *) - 1)))
38#define ALIGN_PTR(ptr, alignment, offset) ((void *) \
39 ((((DWORD_PTR)((char *)ptr + alignment + sizeof(void *) + offset)) & \
40 ~(alignment - 1)) - offset))
42#define SB_HEAP_ALIGN 16
60 void *memblock, *
temp, **saved;
79 void *memblock, *
temp, **saved;
80 size_t old_padding, new_padding,
old_size;
83 old_padding = (
char*)
ptr - (
char*)*saved;
94 new_padding = (
char*)memblock - (
char*)
temp;
96 if(new_padding != old_padding)
136 ret = (*handler)(
size) ? 1 : 0;
278 FIXME(
"small blocks heap not supported\n");
357 if (
size == ~(
size_t)0)
359 WARN(
":Probably called with non wine-allocated memory, ret = -1\n");
548 TRACE(
"(%p)\n", memblock);
562 void *memblock, *
temp, **saved;
615 void *
temp, **saved;
616 size_t old_padding, new_padding,
old_size;
654 old_padding = (
char *)memblock - (
char *)*saved;
684 new_padding = (
char *)memblock - (
char *)
temp;
716 if (new_padding != old_padding)
832#if _MSVCR_VER <= 100 && !defined(__REACTOS__)
842#if _MSVCR_VER <= 100 && !defined(__REACTOS__)
#define DECLSPEC_HOTPATCH
static unsigned char bytes[4]
_Check_return_ _Ret_maybenull_ _In_ size_t alignment
#define InterlockedExchange
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_NO_MORE_ITEMS
#define HeapFree(x, y, z)
UINT(* handler)(MSIPACKAGE *)
void CDECL DECLSPEC_HOTPATCH operator_delete(void *mem)
static void * msvcrt_heap_alloc(DWORD flags, size_t size)
MSVCRT_new_handler_func CDECL _query_new_handler(void)
size_t CDECL _get_sbh_threshold(void)
static LONG MSVCRT_new_mode
void *CDECL _aligned_offset_malloc(size_t size, size_t alignment, size_t offset)
int CDECL memmove_s(void *dest, size_t numberOfElements, const void *src, size_t count)
BOOL msvcrt_init_heap(void)
MSVCRT_new_handler_func CDECL set_new_handler(void *func)
int CDECL memcpy_s(void *dest, size_t numberOfElements, const void *src, size_t count)
static size_t MSVCRT_sbh_threshold
int CDECL _heapset(unsigned int value)
void msvcrt_destroy_heap(void)
static size_t msvcrt_heap_size(void *ptr)
void *CDECL DECLSPEC_HOTPATCH operator_new(size_t size)
void *CDECL _aligned_offset_realloc(void *memblock, size_t size, size_t alignment, size_t offset)
int CDECL _query_new_mode(void)
unsigned int *CDECL __p__amblksiz(void)
int CDECL _set_new_mode(int mode)
MSVCRT_new_handler_func CDECL _set_new_handler(MSVCRT_new_handler_func func)
void *CDECL _aligned_malloc(size_t size, size_t alignment)
void *CDECL _expand(void *mem, size_t size)
int(CDECL * MSVCRT_new_handler_func)(size_t size)
static unsigned int MSVCRT_amblksiz
static MSVCRT_new_handler_func MSVCRT_new_handler
#define ALIGN_PTR(ptr, alignment, offset)
void CDECL _aligned_free(void *memblock)
int CDECL _heapadd(void *mem, size_t size)
void *CDECL _aligned_realloc(void *memblock, size_t size, size_t alignment)
static void * msvcrt_heap_realloc(DWORD flags, void *ptr, size_t size)
int CDECL _callnewh(size_t size)
size_t CDECL _msize(void *mem)
intptr_t CDECL _get_heap_handle(void)
static BOOL msvcrt_heap_free(void *ptr)
int CDECL _set_sbh_threshold(size_t threshold)
void *CDECL operator_new_dbg(size_t size, int type, const char *file, int line)
int CDECL _heapwalk(_HEAPINFO *next)
_ACRTIMP void *__cdecl _recalloc(void *, size_t, size_t) __WINE_ALLOC_SIZE(2
_ACRTIMP errno_t __cdecl wmemcpy_s(wchar_t *, size_t, const wchar_t *, size_t)
#define MSVCRT_CHECK_PMT(x)
#define MSVCRT_CHECK_PMT_ERR(x, err)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
HANDLE WINAPI HeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize)
SIZE_T WINAPI HeapCompact(HANDLE hHeap, DWORD dwFlags)
BOOL WINAPI HeapValidate(HANDLE hHeap, DWORD dwFlags, LPCVOID lpMem)
BOOL WINAPI HeapDestroy(HANDLE hHeap)
BOOL WINAPI HeapWalk(HANDLE hHeap, LPPROCESS_HEAP_ENTRY lpEntry)
#define PROCESS_HEAP_UNCOMMITTED_RANGE
#define PROCESS_HEAP_ENTRY_BUSY
#define PROCESS_HEAP_REGION
#define memmove(s1, s2, n)
static size_t numberOfElements
#define HEAP_REALLOC_IN_PLACE_ONLY
static unsigned __int64 next
_Check_return_ _ACRTIMP size_t __cdecl _aligned_msize(_Pre_notnull_ void *_Block, _In_ size_t _Alignment, _In_ size_t _Offset)
_ACRTIMP void __cdecl _free_base(_Pre_maybenull_ _Post_invalid_ void *_Block)
SIZE_T WINAPI HeapSize(HANDLE, DWORD, LPCVOID)
DWORD WINAPI GetLastError(void)
errno_t __cdecl wmemmove_s(wchar_t *const destination, size_t const size_in_elements, wchar_t const *const source, size_t const count)