[PATCH 17/26] [DbgHelp]: moved the internals for registered callback
to Unicode
Eric Pouech
eric.pouech at wanadoo.fr
Wed Feb 21 14:55:56 CST 2007
A+
---
dlls/dbghelp/dbghelp.c | 24 ++++++++++++------------
dlls/dbghelp/module.c | 24 ++++++++++++------------
2 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/dlls/dbghelp/dbghelp.c b/dlls/dbghelp/dbghelp.c
index c47977e..4757f8d 100644
--- a/dlls/dbghelp/dbghelp.c
+++ b/dlls/dbghelp/dbghelp.c
@@ -500,10 +500,10 @@ BOOL pcs_callback(const struct process*
TRACE("%p %u %p\n", pcs, action, data);
if (!pcs->reg_cb) return FALSE;
- if (pcs->reg_is_unicode)
+ if (!pcs->reg_is_unicode)
{
- IMAGEHLP_DEFERRED_SYMBOL_LOAD64* idsl;
- IMAGEHLP_DEFERRED_SYMBOL_LOADW64 idslW;
+ IMAGEHLP_DEFERRED_SYMBOL_LOAD64 idsl;
+ IMAGEHLP_DEFERRED_SYMBOL_LOADW64* idslW;
switch (action)
{
@@ -516,15 +516,15 @@ BOOL pcs_callback(const struct process*
case CBA_DEFERRED_SYMBOL_LOAD_FAILURE:
case CBA_DEFERRED_SYMBOL_LOAD_PARTIAL:
case CBA_DEFERRED_SYMBOL_LOAD_START:
- idsl = (IMAGEHLP_DEFERRED_SYMBOL_LOAD64*)(DWORD)data;
- idslW.SizeOfStruct = sizeof(idslW);
- idslW.BaseOfImage = idsl->BaseOfImage;
- idslW.CheckSum = idsl->CheckSum;
- idslW.TimeDateStamp = idsl->TimeDateStamp;
- MultiByteToWideChar(CP_ACP, 0, idsl->FileName, -1,
- idslW.FileName, sizeof(idslW.FileName) / sizeof(WCHAR));
- idslW.Reparse = idsl->Reparse;
- data = &idslW;
+ idslW = (IMAGEHLP_DEFERRED_SYMBOL_LOADW64*)(DWORD)data;
+ idsl.SizeOfStruct = sizeof(idsl);
+ idsl.BaseOfImage = idslW->BaseOfImage;
+ idsl.CheckSum = idslW->CheckSum;
+ idsl.TimeDateStamp = idslW->TimeDateStamp;
+ WideCharToMultiByte(CP_ACP, 0, idslW->FileName, -1,
+ idsl.FileName, sizeof(idsl.FileName), NULL, NULL);
+ idsl.Reparse = idslW->Reparse;
+ data = &idsl;
break;
case CBA_DUPLICATE_SYMBOL:
case CBA_EVENT:
diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c
index 1c55ec5..6982359 100644
--- a/dlls/dbghelp/module.c
+++ b/dlls/dbghelp/module.c
@@ -275,7 +275,7 @@ struct module* module_get_containee(cons
*/
BOOL module_get_debug(struct module_pair* pair)
{
- IMAGEHLP_DEFERRED_SYMBOL_LOAD64 idsl64;
+ IMAGEHLP_DEFERRED_SYMBOL_LOADW64 idslW64;
if (!pair->requested) return FALSE;
/* for a PE builtin, always get info from container */
@@ -293,20 +293,20 @@ BOOL module_get_debug(struct module_pair
ret = elf_load_debug_info(pair->effective, NULL);
break;
case DMT_PE:
- idsl64.SizeOfStruct = sizeof(idsl64);
- idsl64.BaseOfImage = pair->effective->module.BaseOfImage;
- idsl64.CheckSum = pair->effective->module.CheckSum;
- idsl64.TimeDateStamp = pair->effective->module.TimeDateStamp;
- WideCharToMultiByte(CP_ACP, 0, pair->effective->module.ImageName, -1,
- idsl64.FileName, sizeof(idsl64.FileName), NULL, NULL);
- idsl64.Reparse = FALSE;
- idsl64.hFile = INVALID_HANDLE_VALUE;
-
- pcs_callback(pair->pcs, CBA_DEFERRED_SYMBOL_LOAD_START, &idsl64);
+ idslW64.SizeOfStruct = sizeof(idslW64);
+ idslW64.BaseOfImage = pair->effective->module.BaseOfImage;
+ idslW64.CheckSum = pair->effective->module.CheckSum;
+ idslW64.TimeDateStamp = pair->effective->module.TimeDateStamp;
+ memcpy(idslW64.FileName, pair->effective->module.ImageName,
+ sizeof(idslW64.FileName));
+ idslW64.Reparse = FALSE;
+ idslW64.hFile = INVALID_HANDLE_VALUE;
+
+ pcs_callback(pair->pcs, CBA_DEFERRED_SYMBOL_LOAD_START, &idslW64);
ret = pe_load_debug_info(pair->pcs, pair->effective);
pcs_callback(pair->pcs,
ret ? CBA_DEFERRED_SYMBOL_LOAD_COMPLETE : CBA_DEFERRED_SYMBOL_LOAD_FAILURE,
- &idsl64);
+ &idslW64);
break;
default:
ret = FALSE;
More information about the wine-patches
mailing list