Module: wine Branch: master Commit: d161abb9b37111088b8ab5d342f814af221e5934 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d161abb9b37111088b8ab5d342...
Author: Piotr Caban piotr@codeweavers.com Date: Fri Sep 7 11:01:35 2012 +0200
msvcp90: Pass RTTI base pointer from DllMain.
---
dlls/msvcp90/exception.c | 3 +-- dlls/msvcp90/ios.c | 3 +-- dlls/msvcp90/locale.c | 3 +-- dlls/msvcp90/msvcp90.h | 6 +++--- dlls/msvcp90/msvcp90_main.c | 6 +++--- 5 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/dlls/msvcp90/exception.c b/dlls/msvcp90/exception.c index 7202a25..6aa3c0d 100644 --- a/dlls/msvcp90/exception.c +++ b/dlls/msvcp90/exception.c @@ -751,10 +751,9 @@ void throw_exception(exception_type et, const char *str) } }
-void init_exception(void) +void init_exception(void *base) { #ifdef __x86_64__ - void *base = GetModuleHandleA("msvcp90.dll"); init_type_info_rtti(base); init_exception_rtti(base); init_bad_alloc_rtti(base); diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index e5d7233..164efcd 100644 --- a/dlls/msvcp90/ios.c +++ b/dlls/msvcp90/ios.c @@ -12921,10 +12921,9 @@ struct { /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */ basic_ostream_wchar *_Ptr_wclog = &wclog.obj;
-void init_io(void) +void init_io(void *base) { #ifdef __x86_64__ - void *base = GetModuleHandleA("msvcp90.dll"); init_iosb_rtti(base); init_ios_base_rtti(base); init_basic_ios_char_rtti(base); diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c index f5a4534..ddf1424 100644 --- a/dlls/msvcp90/locale.c +++ b/dlls/msvcp90/locale.c @@ -8739,10 +8739,9 @@ void __asm_dummy_vtables(void) { } #endif
-void init_locale(void) +void init_locale(void *base) { #ifdef __x86_64__ - void *base = GetModuleHandleA("msvcp90.dll"); init_locale_facet_rtti(base); init_collate_char_rtti(base); init_collate_wchar_rtti(base); diff --git a/dlls/msvcp90/msvcp90.h b/dlls/msvcp90/msvcp90.h index 84e39c5..1108591 100644 --- a/dlls/msvcp90/msvcp90.h +++ b/dlls/msvcp90/msvcp90.h @@ -463,7 +463,7 @@ ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_uint64(const num_put*, o ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_bool(const num_put*, ostreambuf_iterator_wchar*, ostreambuf_iterator_wchar, ios_base*, wchar_t, MSVCP_bool);
-void init_exception(void); -void init_locale(void); -void init_io(void); +void init_exception(void*); +void init_locale(void*); +void init_io(void*); void free_io(void); diff --git a/dlls/msvcp90/msvcp90_main.c b/dlls/msvcp90/msvcp90_main.c index 8d97c9d..31a2d82 100644 --- a/dlls/msvcp90/msvcp90_main.c +++ b/dlls/msvcp90/msvcp90_main.c @@ -90,9 +90,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) case DLL_PROCESS_ATTACH: init_cxx_funcs(); init_lockit(); - init_exception(); - init_locale(); - init_io(); + init_exception(hinstDLL); + init_locale(hinstDLL); + init_io(hinstDLL); break; case DLL_PROCESS_DETACH: free_io();