msvcp100: Add _Container_base0::_Swap_all, _Container_base0::_Orphan_all.

This commit is contained in:
Dan Kegel 2012-07-24 13:33:40 -07:00 committed by Alexandre Julliard
parent c67951c70a
commit 47b9dd1b55
2 changed files with 50 additions and 4 deletions

View File

@ -18,14 +18,60 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
/* Copied from dlls/msvcrt/cpp.c */
#ifdef __i386__ /* thiscall functions are i386-specific */
#define THISCALL(func) __thiscall_ ## func
#define THISCALL_NAME(func) __ASM_NAME("__thiscall_" #func)
#define __thiscall __stdcall
#define DEFINE_THISCALL_WRAPPER(func,args) \
extern void THISCALL(func)(void); \
__ASM_GLOBAL_FUNC(__thiscall_ ## func, \
"popl %eax\n\t" \
"pushl %ecx\n\t" \
"pushl %eax\n\t" \
"jmp " __ASM_NAME(#func) __ASM_STDCALL(args) )
#else /* __i386__ */
#define THISCALL(func) func
#define THISCALL_NAME(func) __ASM_NAME(#func)
#define __thiscall __cdecl
#define DEFINE_THISCALL_WRAPPER(func,args) /* nothing */
#endif /* __i386__ */
/* ?_BADOFF@std@@3_JB -> __int64 const std::_BADOFF */
const __int64 std_BADOFF = -1;
/* _Container_base0 is used by apps compiled without iterator checking
* (i.e. with _ITERATOR_DEBUG_LEVEL=0 ).
* It provides empty versions of methods used by visual c++'s stl's
* iterator checking.
* msvcr100 has to provide them in case apps are compiled with /Od
* or the optimizer fails to inline those (empty) calls.
*/
/* ?_Orphan_all@_Container_base0@std@@QAEXXZ */
/* ?_Orphan_all@_Container_base0@std@@QEAAXXZ */
DEFINE_THISCALL_WRAPPER(Container_base0_Orphan_all, 4)
void __thiscall Container_base0_Orphan_all(void *this)
{
}
/* ?_Swap_all@_Container_base0@std@@QAEXAAU12@@Z */
/* ?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z */
DEFINE_THISCALL_WRAPPER(Container_base0_Swap_all, 8)
void __thiscall Container_base0_Swap_all(void *this, void *that)
{
}
BOOL WINAPI DllMain(HINSTANCE hdll, DWORD reason, LPVOID reserved)
{
switch (reason)

View File

@ -1123,8 +1123,8 @@
@ cdecl -arch=win32 ?_Mutex_dtor@_Mutex@std@@CAXPAV12@@Z(ptr) msvcp90.?_Mutex_dtor@_Mutex@std@@CAXPAV12@@Z
@ cdecl -arch=win64 ?_Mutex_dtor@_Mutex@std@@CAXPEAV12@@Z(ptr) msvcp90.?_Mutex_dtor@_Mutex@std@@CAXPEAV12@@Z
@ stub ?_Nomemory@std@@YAXXZ
@ stub -arch=win32 ?_Orphan_all@_Container_base0@std@@QAEXXZ
@ stub -arch=win64 ?_Orphan_all@_Container_base0@std@@QEAAXXZ
@ thiscall -arch=win32 ?_Orphan_all@_Container_base0@std@@QAEXXZ(ptr) Container_base0_Orphan_all
@ cdecl -arch=win64 ?_Orphan_all@_Container_base0@std@@QEAAXXZ(ptr) Container_base0_Orphan_all
@ stub -arch=win32 ?_Orphan_all@_Container_base12@std@@QAEXXZ
@ stub -arch=win64 ?_Orphan_all@_Container_base12@std@@QEAAXXZ
@ thiscall -arch=win32 ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ(ptr) msvcp90.?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ
@ -1202,8 +1202,8 @@
@ stub -arch=win64 ?_Segment_index_of@_Concurrent_vector_base_v4@details@Concurrency@@KA_K_K@Z
@ cdecl -arch=win32 ?_Setgloballocale@locale@std@@CAXPAX@Z(ptr) msvcp90.?_Setgloballocale@locale@std@@CAXPAX@Z
@ cdecl -arch=win64 ?_Setgloballocale@locale@std@@CAXPEAX@Z(ptr) msvcp90.?_Setgloballocale@locale@std@@CAXPEAX@Z
@ stub -arch=win32 ?_Swap_all@_Container_base0@std@@QAEXAAU12@@Z
@ stub -arch=win64 ?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z
@ thiscall -arch=win32 ?_Swap_all@_Container_base0@std@@QAEXAAU12@@Z(ptr ptr) Container_base0_Swap_all
@ cdecl -arch=win64 ?_Swap_all@_Container_base0@std@@QEAAXAEAU12@@Z(ptr ptr) Container_base0_Swap_all
@ stub -arch=win32 ?_Swap_all@_Container_base12@std@@QAEXAAU12@@Z
@ stub -arch=win64 ?_Swap_all@_Container_base12@std@@QEAAXAEAU12@@Z
@ extern ?_Sync@ios_base@std@@0_NA msvcp90.?_Sync@ios_base@std@@0_NA