Commit 42500b0c authored by Alexandre Julliard's avatar Alexandre Julliard

msvcp60: Share exception functions implementation with msvcp90.

parent 62ae503f
...@@ -3,6 +3,7 @@ IMPORTS = msvcrt ...@@ -3,6 +3,7 @@ IMPORTS = msvcrt
EXTRADEFS = -D_MSVCP_VER=60 EXTRADEFS = -D_MSVCP_VER=60
PARENTSRC = ../msvcp90 PARENTSRC = ../msvcp90
C_SRCS = \ C_SRCS = \
exception.c \ exception.c \
ios.c \ ios.c \
......
...@@ -845,10 +845,10 @@ ...@@ -845,10 +845,10 @@
@ cdecl -arch=win64 ??0bad_alloc@std@@QEAA@PEBD@Z(ptr str) MSVCP_bad_alloc_ctor @ cdecl -arch=win64 ??0bad_alloc@std@@QEAA@PEBD@Z(ptr str) MSVCP_bad_alloc_ctor
@ thiscall -arch=win32 ??0bad_alloc@std@@QAE@XZ(ptr) MSVCP_bad_alloc_default_ctor @ thiscall -arch=win32 ??0bad_alloc@std@@QAE@XZ(ptr) MSVCP_bad_alloc_default_ctor
@ cdecl -arch=win64 ??0bad_alloc@std@@QEAA@XZ(ptr) MSVCP_bad_alloc_default_ctor @ cdecl -arch=win64 ??0bad_alloc@std@@QEAA@XZ(ptr) MSVCP_bad_alloc_default_ctor
@ thiscall -arch=i386 ??0bad_cast@std@@QAE@ABV01@@Z(ptr ptr) msvcrt.??0bad_cast@@QAE@ABV0@@Z @ thiscall -arch=i386 ??0bad_cast@std@@QAE@ABV01@@Z(ptr ptr) MSVCP_bad_cast_copy_ctor
@ cdecl -arch=win64 ??0bad_cast@std@@QEAA@AEBV01@@Z(ptr ptr) msvcrt.??0bad_cast@@QEAA@AEBV0@@Z @ cdecl -arch=win64 ??0bad_cast@std@@QEAA@AEBV01@@Z(ptr ptr) MSVCP_bad_cast_copy_ctor
@ thiscall -arch=i386 ??0bad_cast@std@@QAE@PBD@Z(ptr str) msvcrt.??0bad_cast@@QAE@PBD@Z @ thiscall -arch=i386 ??0bad_cast@std@@QAE@PBD@Z(ptr str) MSVCP_bad_cast_ctor
@ cdecl -arch=win64 ??0bad_cast@std@@QEAA@PEBD@Z(ptr str) msvcrt.??0bad_cast@@QEAA@PEBD@Z @ cdecl -arch=win64 ??0bad_cast@std@@QEAA@PEBD@Z(ptr str) MSVCP_bad_cast_ctor
@ stub -arch=win32 ??0bad_exception@std@@QAE@ABV01@@Z @ stub -arch=win32 ??0bad_exception@std@@QAE@ABV01@@Z
@ stub -arch=win64 ??0bad_exception@std@@QEAA@AEBV01@@Z @ stub -arch=win64 ??0bad_exception@std@@QEAA@AEBV01@@Z
@ stub -arch=win32 ??0bad_exception@std@@QAE@PBD@Z @ stub -arch=win32 ??0bad_exception@std@@QAE@PBD@Z
...@@ -1049,8 +1049,8 @@ ...@@ -1049,8 +1049,8 @@
@ stub -arch=win64 ??1__non_rtti_object@std@@UEAA@XZ @ stub -arch=win64 ??1__non_rtti_object@std@@UEAA@XZ
@ thiscall -arch=win32 ??1bad_alloc@std@@UAE@XZ(ptr) MSVCP_bad_alloc_dtor @ thiscall -arch=win32 ??1bad_alloc@std@@UAE@XZ(ptr) MSVCP_bad_alloc_dtor
@ cdecl -arch=win64 ??1bad_alloc@std@@UEAA@XZ(ptr) MSVCP_bad_alloc_dtor @ cdecl -arch=win64 ??1bad_alloc@std@@UEAA@XZ(ptr) MSVCP_bad_alloc_dtor
@ thiscall -arch=i386 ??1bad_cast@std@@UAE@XZ(ptr) msvcrt.??1bad_cast@@UAE@XZ @ thiscall -arch=i386 ??1bad_cast@std@@UAE@XZ(ptr) MSVCP_bad_cast_dtor
@ cdecl -arch=win64 ??1bad_cast@std@@UEAA@XZ(ptr) msvcrt.??1bad_cast@@UEAA@XZ @ cdecl -arch=win64 ??1bad_cast@std@@UEAA@XZ(ptr) MSVCP_bad_cast_dtor
@ stub -arch=win32 ??1bad_exception@std@@UAE@XZ @ stub -arch=win32 ??1bad_exception@std@@UAE@XZ
@ stub -arch=win64 ??1bad_exception@std@@UEAA@XZ @ stub -arch=win64 ??1bad_exception@std@@UEAA@XZ
@ stub -arch=win32 ??1bad_typeid@std@@UAE@XZ @ stub -arch=win32 ??1bad_typeid@std@@UAE@XZ
...@@ -1235,8 +1235,8 @@ ...@@ -1235,8 +1235,8 @@
@ stub -arch=win64 ??4__non_rtti_object@std@@QEAAAEAV01@AEBV01@@Z @ stub -arch=win64 ??4__non_rtti_object@std@@QEAAAEAV01@AEBV01@@Z
@ thiscall -arch=win32 ??4bad_alloc@std@@QAEAAV01@ABV01@@Z(ptr ptr) MSVCP_bad_alloc_assign @ thiscall -arch=win32 ??4bad_alloc@std@@QAEAAV01@ABV01@@Z(ptr ptr) MSVCP_bad_alloc_assign
@ cdecl -arch=win64 ??4bad_alloc@std@@QEAAAEAV01@AEBV01@@Z(ptr ptr) MSVCP_bad_alloc_assign @ cdecl -arch=win64 ??4bad_alloc@std@@QEAAAEAV01@AEBV01@@Z(ptr ptr) MSVCP_bad_alloc_assign
@ thiscall -arch=i386 ??4bad_cast@std@@QAEAAV01@ABV01@@Z(ptr ptr) msvcrt.??4bad_cast@@QAEAAV0@ABV0@@Z @ thiscall -arch=i386 ??4bad_cast@std@@QAEAAV01@ABV01@@Z(ptr ptr) MSVCP_bad_cast_opequals
@ cdecl -arch=win64 ??4bad_cast@std@@QEAAAEAV01@AEBV01@@Z(ptr ptr) msvcrt.??4bad_cast@@QEAAAEAV0@AEBV0@@Z @ cdecl -arch=win64 ??4bad_cast@std@@QEAAAEAV01@AEBV01@@Z(ptr ptr) MSVCP_bad_cast_opequals
@ stub -arch=win32 ??4bad_exception@std@@QAEAAV01@ABV01@@Z @ stub -arch=win32 ??4bad_exception@std@@QAEAAV01@ABV01@@Z
@ stub -arch=win64 ??4bad_exception@std@@QEAAAEAV01@AEBV01@@Z @ stub -arch=win64 ??4bad_exception@std@@QEAAAEAV01@AEBV01@@Z
@ stub -arch=win32 ??4bad_typeid@std@@QAEAAV01@ABV01@@Z @ stub -arch=win32 ??4bad_typeid@std@@QAEAAV01@ABV01@@Z
...@@ -1815,7 +1815,7 @@ ...@@ -1815,7 +1815,7 @@
@ extern ??_7?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@ MSVCP_time_put_short_vtable @ extern ??_7?$time_put@GV?$ostreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@6B@ MSVCP_time_put_short_vtable
# extern ??_7__non_rtti_object@std@@6B@ # extern ??_7__non_rtti_object@std@@6B@
@ extern ??_7bad_alloc@std@@6B@ MSVCP_bad_alloc_vtable @ extern ??_7bad_alloc@std@@6B@ MSVCP_bad_alloc_vtable
@ extern ??_7bad_cast@std@@6B@ msvcrt.??_7bad_cast@@6B@ @ extern ??_7bad_cast@std@@6B@ MSVCP_bad_cast_vtable
# extern ??_7bad_exception@std@@6B@ # extern ??_7bad_exception@std@@6B@
# extern ??_7bad_typeid@std@@6B@ # extern ??_7bad_typeid@std@@6B@
@ extern ??_7codecvt_base@std@@6B@ MSVCP_codecvt_base_vtable @ extern ??_7codecvt_base@std@@6B@ MSVCP_codecvt_base_vtable
...@@ -1979,8 +1979,8 @@ ...@@ -1979,8 +1979,8 @@
@ cdecl -arch=win64 ??_F_Locinfo@std@@QEAAXXZ(ptr) _Locinfo_ctor @ cdecl -arch=win64 ??_F_Locinfo@std@@QEAAXXZ(ptr) _Locinfo_ctor
@ thiscall -arch=win32 ??_F_Timevec@std@@QAEXXZ(ptr) _Timevec_ctor @ thiscall -arch=win32 ??_F_Timevec@std@@QAEXXZ(ptr) _Timevec_ctor
@ cdecl -arch=win64 ??_F_Timevec@std@@QEAAXXZ(ptr) _Timevec_ctor @ cdecl -arch=win64 ??_F_Timevec@std@@QEAAXXZ(ptr) _Timevec_ctor
@ thiscall -arch=i386 ??_Fbad_cast@std@@QAEXXZ(ptr) msvcrt.??_Fbad_cast@@QAEXXZ @ thiscall -arch=i386 ??_Fbad_cast@std@@QAEXXZ(ptr) MSVCP_bad_cast_default_ctor
@ cdecl -arch=win64 ??_Fbad_cast@std@@QEAAXXZ(ptr) msvcrt.??_Fbad_cast@@QEAAXXZ @ cdecl -arch=win64 ??_Fbad_cast@std@@QEAAXXZ(ptr) MSVCP_bad_cast_default_ctor
@ stub -arch=win32 ??_Fbad_exception@std@@QAEXXZ @ stub -arch=win32 ??_Fbad_exception@std@@QAEXXZ
@ stub -arch=win64 ??_Fbad_exception@std@@QEAAXXZ @ stub -arch=win64 ??_Fbad_exception@std@@QEAAXXZ
@ stub -arch=win32 ??_Fbad_typeid@std@@QAEXXZ @ stub -arch=win32 ??_Fbad_typeid@std@@QAEXXZ
...@@ -4192,7 +4192,7 @@ ...@@ -4192,7 +4192,7 @@
@ cdecl -arch=win64 ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ(ptr) basic_streambuf_char_uflow @ cdecl -arch=win64 ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ(ptr) basic_streambuf_char_uflow
@ thiscall -arch=win32 ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ(ptr) basic_streambuf_wchar_uflow @ thiscall -arch=win32 ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ(ptr) basic_streambuf_wchar_uflow
@ cdecl -arch=win64 ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ(ptr) basic_streambuf_wchar_uflow @ cdecl -arch=win64 ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ(ptr) basic_streambuf_wchar_uflow
@ cdecl ?uncaught_exception@std@@YA_NXZ() msvcp90.?uncaught_exception@std@@YA_NXZ @ cdecl ?uncaught_exception@std@@YA_NXZ() MSVCP__uncaught_exception
@ thiscall -arch=win32 ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ(ptr) basic_filebuf_char_underflow @ thiscall -arch=win32 ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ(ptr) basic_filebuf_char_underflow
@ cdecl -arch=win64 ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ(ptr) basic_filebuf_char_underflow @ cdecl -arch=win64 ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ(ptr) basic_filebuf_char_underflow
@ thiscall -arch=win32 ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ(ptr) basic_filebuf_wchar_underflow @ thiscall -arch=win32 ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ(ptr) basic_filebuf_wchar_underflow
......
...@@ -71,14 +71,16 @@ extern MSVCP_bool (__thiscall *critical_section_trylock)(critical_section*); ...@@ -71,14 +71,16 @@ extern MSVCP_bool (__thiscall *critical_section_trylock)(critical_section*);
#endif #endif
/* basic_string<char, char_traits<char>, allocator<char>> */ /* basic_string<char, char_traits<char>, allocator<char>> */
#define BUF_SIZE_CHAR 16
typedef struct typedef struct
{ {
#if _MSVCP_VER <= 90 #if _MSVCP_VER <= 90
void *allocator; void *allocator;
#endif #endif
union { union {
#if _MSVCP_VER >= 70
#define BUF_SIZE_CHAR 16
char buf[BUF_SIZE_CHAR]; char buf[BUF_SIZE_CHAR];
#endif
char *ptr; char *ptr;
} data; } data;
MSVCP_size_t size; MSVCP_size_t size;
...@@ -99,14 +101,16 @@ basic_string_char* __thiscall MSVCP_basic_string_char_append_ch(basic_string_cha ...@@ -99,14 +101,16 @@ basic_string_char* __thiscall MSVCP_basic_string_char_append_ch(basic_string_cha
MSVCP_size_t __thiscall MSVCP_basic_string_char_length(const basic_string_char*); MSVCP_size_t __thiscall MSVCP_basic_string_char_length(const basic_string_char*);
basic_string_char* __thiscall MSVCP_basic_string_char_assign(basic_string_char*, const basic_string_char*); basic_string_char* __thiscall MSVCP_basic_string_char_assign(basic_string_char*, const basic_string_char*);
#define BUF_SIZE_WCHAR 8
typedef struct typedef struct
{ {
#if _MSVCP_VER <= 90 #if _MSVCP_VER <= 90
void *allocator; void *allocator;
#endif #endif
union { union {
#if _MSVCP_VER >= 70
#define BUF_SIZE_WCHAR 8
wchar_t buf[BUF_SIZE_WCHAR]; wchar_t buf[BUF_SIZE_WCHAR];
#endif
wchar_t *ptr; wchar_t *ptr;
} data; } data;
MSVCP_size_t size; MSVCP_size_t size;
...@@ -366,8 +370,12 @@ typedef struct _ios_base { ...@@ -366,8 +370,12 @@ typedef struct _ios_base {
streamsize wide; streamsize wide;
IOS_BASE_iosarray *arr; IOS_BASE_iosarray *arr;
IOS_BASE_fnarray *calls; IOS_BASE_fnarray *calls;
#if _MSVCP_VER < 70
locale loc;
#else
locale *loc; locale *loc;
#if _MSVCP_VER == 70 #endif
#if _MSVCP_VER <= 70
MSVCP_size_t stdstr; MSVCP_size_t stdstr;
#endif #endif
} ios_base; } ios_base;
...@@ -375,7 +383,7 @@ typedef struct _ios_base { ...@@ -375,7 +383,7 @@ typedef struct _ios_base {
/* class basic_streambuf<char> */ /* class basic_streambuf<char> */
typedef struct { typedef struct {
const vtable_ptr *vtable; const vtable_ptr *vtable;
#if _MSVCP_VER <= 100 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
mutex lock; mutex lock;
#endif #endif
char *rbuf; char *rbuf;
...@@ -390,7 +398,11 @@ typedef struct { ...@@ -390,7 +398,11 @@ typedef struct {
int wsize; int wsize;
int *prsize; int *prsize;
int *pwsize; int *pwsize;
#if _MSVCP_VER < 70
locale loc;
#else
locale *loc; locale *loc;
#endif
} basic_streambuf_char; } basic_streambuf_char;
typedef struct { typedef struct {
...@@ -414,7 +426,7 @@ int __thiscall basic_streambuf_char_sputc(basic_streambuf_char*, char); ...@@ -414,7 +426,7 @@ int __thiscall basic_streambuf_char_sputc(basic_streambuf_char*, char);
/* class basic_streambuf<wchar> */ /* class basic_streambuf<wchar> */
typedef struct { typedef struct {
const vtable_ptr *vtable; const vtable_ptr *vtable;
#if _MSVCP_VER <= 100 #if _MSVCP_VER >= 70 && _MSVCP_VER <= 100
mutex lock; mutex lock;
#endif #endif
wchar_t *rbuf; wchar_t *rbuf;
...@@ -429,7 +441,11 @@ typedef struct { ...@@ -429,7 +441,11 @@ typedef struct {
int wsize; int wsize;
int *prsize; int *prsize;
int *pwsize; int *pwsize;
#if _MSVCP_VER < 70
locale loc;
#else
locale *loc; locale *loc;
#endif
} basic_streambuf_wchar; } basic_streambuf_wchar;
typedef struct { typedef struct {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment