Commit d161abb9 authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

msvcp90: Pass RTTI base pointer from DllMain.

parent 8060752c
...@@ -751,10 +751,9 @@ void throw_exception(exception_type et, const char *str) ...@@ -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__ #ifdef __x86_64__
void *base = GetModuleHandleA("msvcp90.dll");
init_type_info_rtti(base); init_type_info_rtti(base);
init_exception_rtti(base); init_exception_rtti(base);
init_bad_alloc_rtti(base); init_bad_alloc_rtti(base);
......
...@@ -12921,10 +12921,9 @@ struct { ...@@ -12921,10 +12921,9 @@ struct {
/* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */ /* ?_Ptr_wclog@std@@3PEAV?$basic_ostream@_WU?$char_traits@_W@std@@@1@EA */
basic_ostream_wchar *_Ptr_wclog = &wclog.obj; basic_ostream_wchar *_Ptr_wclog = &wclog.obj;
void init_io(void) void init_io(void *base)
{ {
#ifdef __x86_64__ #ifdef __x86_64__
void *base = GetModuleHandleA("msvcp90.dll");
init_iosb_rtti(base); init_iosb_rtti(base);
init_ios_base_rtti(base); init_ios_base_rtti(base);
init_basic_ios_char_rtti(base); init_basic_ios_char_rtti(base);
......
...@@ -8739,10 +8739,9 @@ void __asm_dummy_vtables(void) { ...@@ -8739,10 +8739,9 @@ void __asm_dummy_vtables(void) {
} }
#endif #endif
void init_locale(void) void init_locale(void *base)
{ {
#ifdef __x86_64__ #ifdef __x86_64__
void *base = GetModuleHandleA("msvcp90.dll");
init_locale_facet_rtti(base); init_locale_facet_rtti(base);
init_collate_char_rtti(base); init_collate_char_rtti(base);
init_collate_wchar_rtti(base); init_collate_wchar_rtti(base);
......
...@@ -463,7 +463,7 @@ ostreambuf_iterator_wchar* __thiscall num_put_wchar_put_uint64(const num_put*, o ...@@ -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* __thiscall num_put_wchar_put_bool(const num_put*, ostreambuf_iterator_wchar*,
ostreambuf_iterator_wchar, ios_base*, wchar_t, MSVCP_bool); ostreambuf_iterator_wchar, ios_base*, wchar_t, MSVCP_bool);
void init_exception(void); void init_exception(void*);
void init_locale(void); void init_locale(void*);
void init_io(void); void init_io(void*);
void free_io(void); void free_io(void);
...@@ -90,9 +90,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) ...@@ -90,9 +90,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
case DLL_PROCESS_ATTACH: case DLL_PROCESS_ATTACH:
init_cxx_funcs(); init_cxx_funcs();
init_lockit(); init_lockit();
init_exception(); init_exception(hinstDLL);
init_locale(); init_locale(hinstDLL);
init_io(); init_io(hinstDLL);
break; break;
case DLL_PROCESS_DETACH: case DLL_PROCESS_DETACH:
free_io(); free_io();
......
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