Piotr Caban : msvcp90: Pass RTTI base pointer from DllMain.
Alexandre Julliard
julliard at winehq.org
Fri Sep 7 13:26:20 CDT 2012
Module: wine
Branch: master
Commit: d161abb9b37111088b8ab5d342f814af221e5934
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d161abb9b37111088b8ab5d342f814af221e5934
Author: Piotr Caban <piotr at 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 at std@@3PEAV?$basic_ostream at _WU?$char_traits at _W@std@@@1 at 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();
More information about the wine-cvs
mailing list