dbghelp: Call GetSystemInfo in DllMain.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
234115c8cc
commit
7544b9f6fb
|
@ -68,9 +68,22 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp);
|
||||||
|
|
||||||
unsigned dbghelp_options = SYMOPT_UNDNAME;
|
unsigned dbghelp_options = SYMOPT_UNDNAME;
|
||||||
BOOL dbghelp_opt_native = FALSE;
|
BOOL dbghelp_opt_native = FALSE;
|
||||||
|
SYSTEM_INFO sysinfo;
|
||||||
|
|
||||||
static struct process* process_first /* = NULL */;
|
static struct process* process_first /* = NULL */;
|
||||||
|
|
||||||
|
BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
|
||||||
|
{
|
||||||
|
switch (reason)
|
||||||
|
{
|
||||||
|
case DLL_PROCESS_ATTACH:
|
||||||
|
GetSystemInfo(&sysinfo);
|
||||||
|
DisableThreadLibraryCalls(instance);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
* process_find_by_handle
|
* process_find_by_handle
|
||||||
*
|
*
|
||||||
|
|
|
@ -115,6 +115,7 @@ void* hash_table_iter_up(struct hash_table_iter* hti) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
extern unsigned dbghelp_options DECLSPEC_HIDDEN;
|
extern unsigned dbghelp_options DECLSPEC_HIDDEN;
|
||||||
extern BOOL dbghelp_opt_native DECLSPEC_HIDDEN;
|
extern BOOL dbghelp_opt_native DECLSPEC_HIDDEN;
|
||||||
|
extern SYSTEM_INFO sysinfo DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
enum location_kind {loc_error, /* reg is the error code */
|
enum location_kind {loc_error, /* reg is the error code */
|
||||||
loc_unavailable, /* location is not available */
|
loc_unavailable, /* location is not available */
|
||||||
|
|
|
@ -137,7 +137,6 @@ struct elf_module_info
|
||||||
static const char* elf_map_section(struct image_section_map* ism)
|
static const char* elf_map_section(struct image_section_map* ism)
|
||||||
{
|
{
|
||||||
struct elf_file_map* fmap = &ism->fmap->u.elf;
|
struct elf_file_map* fmap = &ism->fmap->u.elf;
|
||||||
SYSTEM_INFO sysinfo;
|
|
||||||
SIZE_T ofst, size;
|
SIZE_T ofst, size;
|
||||||
HANDLE mapping;
|
HANDLE mapping;
|
||||||
|
|
||||||
|
@ -152,7 +151,6 @@ static const char* elf_map_section(struct image_section_map* ism)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* align required information on allocation granularity */
|
/* align required information on allocation granularity */
|
||||||
GetSystemInfo(&sysinfo);
|
|
||||||
ofst = fmap->sect[ism->sidx].shdr.sh_offset & ~(sysinfo.dwAllocationGranularity - 1);
|
ofst = fmap->sect[ism->sidx].shdr.sh_offset & ~(sysinfo.dwAllocationGranularity - 1);
|
||||||
size = fmap->sect[ism->sidx].shdr.sh_offset + fmap->sect[ism->sidx].shdr.sh_size - ofst;
|
size = fmap->sect[ism->sidx].shdr.sh_offset + fmap->sect[ism->sidx].shdr.sh_size - ofst;
|
||||||
if (!(mapping = CreateFileMappingW(fmap->handle, NULL, PAGE_READONLY, 0, ofst + size, NULL)))
|
if (!(mapping = CreateFileMappingW(fmap->handle, NULL, PAGE_READONLY, 0, ofst + size, NULL)))
|
||||||
|
|
|
@ -164,11 +164,9 @@ static void macho_calc_range(const struct macho_file_map* fmap, unsigned long of
|
||||||
unsigned long len, unsigned long* out_aligned_offset,
|
unsigned long len, unsigned long* out_aligned_offset,
|
||||||
unsigned long* out_aligned_end, unsigned long* out_misalign)
|
unsigned long* out_aligned_end, unsigned long* out_misalign)
|
||||||
{
|
{
|
||||||
SYSTEM_INFO sysinfo;
|
|
||||||
unsigned long pagemask;
|
unsigned long pagemask;
|
||||||
unsigned long file_offset, misalign;
|
unsigned long file_offset, misalign;
|
||||||
|
|
||||||
GetSystemInfo(&sysinfo);
|
|
||||||
pagemask = sysinfo.dwAllocationGranularity - 1;
|
pagemask = sysinfo.dwAllocationGranularity - 1;
|
||||||
file_offset = fmap->arch_offset + offset;
|
file_offset = fmap->arch_offset + offset;
|
||||||
misalign = file_offset & pagemask;
|
misalign = file_offset & pagemask;
|
||||||
|
|
Loading…
Reference in New Issue