Module: wine Branch: master Commit: 0707164543ada140db13952c6af26c98a6d4946c URL: http://source.winehq.org/git/wine.git/?a=commit;h=0707164543ada140db13952c6a...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Aug 4 16:28:18 2016 +0200
ucrtbase: Fix __std_type_info_compare implementation.
Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/msvcrt/cpp.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-)
diff --git a/dlls/msvcrt/cpp.c b/dlls/msvcrt/cpp.c index b470478..8e44969 100644 --- a/dlls/msvcrt/cpp.c +++ b/dlls/msvcrt/cpp.c @@ -575,16 +575,6 @@ int __thiscall MSVCRT_type_info_before(type_info * _this, const type_info * rhs) }
/****************************************************************** - * __std_type_info_compare (MSVCRT.@) - */ -int CDECL MSVCRT_type_info_compare(type_info * _this, const type_info * rhs) -{ - int ret = strcmp(_this->mangled + 1, rhs->mangled + 1); - TRACE("(%p %p) returning %d\n", _this, rhs, ret); - return ret; -} - -/****************************************************************** * ??1type_info@@UAE@XZ (MSVCRT.@) */ DEFINE_THISCALL_WRAPPER(MSVCRT_type_info_dtor,4) @@ -1513,3 +1503,24 @@ void* __cdecl __AdjustPointer(void *obj, const this_ptr_offsets *off) { return get_this_pointer(off, obj); } + +#if _MSVCR_VER >= 140 +typedef struct +{ + char *name; + char mangled[1]; +} type_info140; + +/****************************************************************** + * __std_type_info_compare (UCRTBASE.@) + */ +int CDECL MSVCRT_type_info_compare(const type_info140 *l, const type_info140 *r) +{ + int ret; + + if (l == r) ret = 0; + else ret = strcmp(l->mangled + 1, r->mangled + 1); + TRACE("(%p %p) returning %d\n", l, r, ret); + return ret; +} +#endif