msvcp90: Added collate<char>::do_hash implementation.

This commit is contained in:
Piotr Caban 2011-12-20 15:57:19 +01:00 committed by Alexandre Julliard
parent 5051876660
commit 0e8d13b82c
3 changed files with 28 additions and 4 deletions

View file

@ -777,11 +777,18 @@ int __thiscall collate_char_compare(const collate *this, const char *first1,
/* ?do_hash@?$collate@D@std@@MBEJPBD0@Z */
/* ?do_hash@?$collate@D@std@@MEBAJPEBD0@Z */
DEFINE_THISCALL_WRAPPER(collate_char_do_hash, 12)
#define call_collate_char_do_hash(this, first, last) CALL_VTBL_FUNC(this, 12, LONG, \
(const collate*, const char*, const char*), (this, first, last))
LONG __thiscall collate_char_do_hash(const collate *this,
const char *first, const char *last)
{
FIXME("(%p %p %p) stub\n", this, first, last);
return 0;
ULONG ret = 0;
TRACE("(%p %p %p)\n", this, first, last);
for(; first<last; first++)
ret = (ret<<8 | ret>>24) + *first;
return ret;
}
/* ?hash@?$collate@D@std@@QBEJPBD0@Z */
@ -790,8 +797,8 @@ DEFINE_THISCALL_WRAPPER(collate_char_hash, 12)
LONG __thiscall collate_char_hash(const collate *this,
const char *first, const char *last)
{
FIXME("(%p %p %p) stub\n", this, first, last);
return 0;
TRACE("(%p %p %p)\n", this, first, last);
return call_collate_char_do_hash(this, first, last);
}
/* ?do_transform@?$collate@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PBD0@Z */

View file

@ -136,6 +136,14 @@ const rtti_object_locator name ## _rtti = { \
extern void *vtbl_wrapper_0;
extern void *vtbl_wrapper_4;
extern void *vtbl_wrapper_12;
extern void *vtbl_wrapper_16;
extern void *vtbl_wrapper_20;
extern void *vtbl_wrapper_24;
extern void *vtbl_wrapper_28;
extern void *vtbl_wrapper_32;
extern void *vtbl_wrapper_36;
extern void *vtbl_wrapper_40;
#else

View file

@ -40,6 +40,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(msvcp90);
DEFINE_VTBL_WRAPPER(0);
DEFINE_VTBL_WRAPPER(4);
DEFINE_VTBL_WRAPPER(8);
DEFINE_VTBL_WRAPPER(12);
DEFINE_VTBL_WRAPPER(16);
DEFINE_VTBL_WRAPPER(20);
DEFINE_VTBL_WRAPPER(24);
DEFINE_VTBL_WRAPPER(28);
DEFINE_VTBL_WRAPPER(32);
DEFINE_VTBL_WRAPPER(36);
DEFINE_VTBL_WRAPPER(40);
#endif