msvcrtd: Forward operator_new_dbg to msvcrt.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com> Signed-off-by: Piotr Caban <piotr@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
13a53aa969
commit
6c42e742b3
|
@ -25,8 +25,6 @@
|
|||
#define _DEBUG
|
||||
#include "crtdbg.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(msvcrt);
|
||||
|
||||
int _crtAssertBusy = -1;
|
||||
int _crtBreakAlloc = -1;
|
||||
int _crtDbgFlag = 0;
|
||||
|
@ -39,43 +37,6 @@ typedef unsigned long MSVCRT_size_t;
|
|||
|
||||
extern int _callnewh(MSVCRT_size_t);
|
||||
|
||||
/*********************************************************************
|
||||
* ??2@YAPAXIHPBDH@Z (MSVCRTD.@)
|
||||
*/
|
||||
void * CDECL MSVCRTD_operator_new_dbg(MSVCRT_size_t nSize, int nBlockUse,
|
||||
const char *szFileName, int nLine)
|
||||
{
|
||||
void *retval = NULL;
|
||||
|
||||
TRACE("(%lu, %d, '%s', %d)\n", nSize, nBlockUse, szFileName, nLine);
|
||||
|
||||
switch(_BLOCK_TYPE(nBlockUse))
|
||||
{
|
||||
case _NORMAL_BLOCK:
|
||||
break;
|
||||
case _CLIENT_BLOCK:
|
||||
FIXME("Unimplemented case for nBlockUse = _CLIENT_BLOCK\n");
|
||||
return NULL;
|
||||
case _FREE_BLOCK:
|
||||
FIXME("Native code throws an exception here\n");
|
||||
return NULL;
|
||||
case _CRT_BLOCK:
|
||||
case _IGNORE_BLOCK:
|
||||
ERR("Not allowed nBlockUse value: %d\n", _BLOCK_TYPE(nBlockUse));
|
||||
return NULL;
|
||||
default:
|
||||
ERR("Unknown nBlockUse value: %d\n", _BLOCK_TYPE(nBlockUse));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
retval = HeapAlloc(GetProcessHeap(), 0, nSize);
|
||||
|
||||
if (!retval)
|
||||
_callnewh(nSize);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* _CrtSetDumpClient (MSVCRTD.@)
|
||||
*/
|
||||
|
|
|
@ -31,8 +31,8 @@
|
|||
@ cdecl -arch=win64 ??1type_info@@UEAA@XZ(ptr) msvcrt.??1type_info@@UEAA@XZ
|
||||
@ cdecl -arch=win32 ??2@YAPAXI@Z(long) msvcrt.??2@YAPAXI@Z
|
||||
@ cdecl -arch=win64 ??2@YAPEAX_K@Z(long) msvcrt.??2@YAPEAX_K@Z
|
||||
@ cdecl -arch=win32 ??2@YAPAXIHPBDH@Z(long long str long) MSVCRTD_operator_new_dbg
|
||||
@ cdecl -arch=win64 ??2@YAPEAX_KHPEBDH@Z(long long str long) MSVCRTD_operator_new_dbg
|
||||
@ cdecl -arch=win32 ??2@YAPAXIHPBDH@Z(long long str long) msvcrt.??2@YAPAXIHPBDH@Z
|
||||
@ cdecl -arch=win64 ??2@YAPEAX_KHPEBDH@Z(long long str long) msvcrt.??2@YAPEAX_KHPEBDH@Z
|
||||
@ cdecl -arch=win32 ??3@YAXPAX@Z(ptr) msvcrt.??3@YAXPAX@Z
|
||||
@ cdecl -arch=win64 ??3@YAXPEAX@Z(ptr) msvcrt.??3@YAXPEAX@Z
|
||||
@ thiscall -arch=i386 ??4__non_rtti_object@@QAEAAV0@ABV0@@Z(ptr ptr) msvcrt.??4__non_rtti_object@@QAEAAV0@ABV0@@Z
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
/**********************************************************************/
|
||||
|
||||
static void * (__cdecl *pMSVCRTD_operator_new_dbg)(size_t, int, const char *, int) = NULL;
|
||||
static void * (__cdecl *pMSVCRTD_operator_delete)(void *) = NULL;
|
||||
|
||||
/* Some exports are only available in later versions */
|
||||
#define SETNOFAIL(x,y) x = (void*)GetProcAddress(hModule,y)
|
||||
|
@ -46,9 +47,15 @@ static BOOL init_functions(void)
|
|||
}
|
||||
|
||||
if (sizeof(void *) > sizeof(int)) /* 64-bit has a different mangled name */
|
||||
{
|
||||
SET(pMSVCRTD_operator_new_dbg, "??2@YAPEAX_KHPEBDH@Z");
|
||||
SET(pMSVCRTD_operator_delete, "??3@YAXPEAX@Z");
|
||||
}
|
||||
else
|
||||
{
|
||||
SET(pMSVCRTD_operator_new_dbg, "??2@YAPAXIHPBDH@Z");
|
||||
SET(pMSVCRTD_operator_delete, "??3@YAXPAX@Z");
|
||||
}
|
||||
|
||||
if (pMSVCRTD_operator_new_dbg == NULL)
|
||||
return FALSE;
|
||||
|
@ -64,7 +71,11 @@ static void test_new(void)
|
|||
|
||||
mem = pMSVCRTD_operator_new_dbg(42, _NORMAL_BLOCK, __FILE__, __LINE__);
|
||||
ok(mem != NULL, "memory not allocated\n");
|
||||
HeapFree(GetProcessHeap(), 0, mem);
|
||||
pMSVCRTD_operator_delete(mem);
|
||||
|
||||
mem = pMSVCRTD_operator_new_dbg(42, _CRT_BLOCK, __FILE__, __LINE__);
|
||||
ok(mem != NULL, "memory not allocated\n");
|
||||
pMSVCRTD_operator_delete(mem);
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
|
|
Loading…
Reference in New Issue