[PATCH 16/26] [DbgHelp]: get rid of temporary
module_get_type_by_nameA
Eric Pouech
eric.pouech at wanadoo.fr
Wed Feb 21 14:55:51 CST 2007
A+
---
dlls/dbghelp/dbghelp_private.h | 2 --
dlls/dbghelp/module.c | 43 ----------------------------------------
dlls/dbghelp/path.c | 24 ++++++++++++++--------
dlls/dbghelp/pe_module.c | 2 +-
4 files changed, 16 insertions(+), 55 deletions(-)
diff --git a/dlls/dbghelp/dbghelp_private.h b/dlls/dbghelp/dbghelp_private.h
index cd5c9c6..2af44ea 100644
--- a/dlls/dbghelp/dbghelp_private.h
+++ b/dlls/dbghelp/dbghelp_private.h
@@ -456,8 +456,6 @@ extern struct module*
const struct module* inner);
extern enum module_type
module_get_type_by_name(const WCHAR* name);
-extern enum module_type
- module_get_type_by_nameA(const char* name);
extern void module_reset_debug_info(struct module* module);
extern BOOL module_remove(struct process* pcs,
struct module* module);
diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c
index d4f3fad..1c55ec5 100644
--- a/dlls/dbghelp/module.c
+++ b/dlls/dbghelp/module.c
@@ -403,36 +403,6 @@ enum module_type module_get_type_by_name
return DMT_PE;
}
-/******************************************************************
- * module_get_type_by_nameA
- *
- * Guesses a filename type from its extension
- */
-enum module_type module_get_type_by_nameA(const char* name)
-{
- const char* ptr;
- int len = strlen(name);
-
- /* check for terminating .so or .so.[digit] */
- ptr = strrchr(name, '.');
- if (ptr)
- {
- if (!strcmp(ptr, ".so") ||
- (isdigit(ptr[1]) && !ptr[2] && ptr >= name + 3 && !memcmp(ptr - 3, ".so", 3)))
- return DMT_ELF;
- else if (!strcasecmp(ptr, ".pdb"))
- return DMT_PDB;
- }
- /* wine-[kp]thread is also an ELF module */
- else if (((len > 12 && name[len - 13] == '/') || len == 12) &&
- (!strcasecmp(name + len - 12, "wine-pthread") ||
- !strcasecmp(name + len - 12, "wine-kthread")))
- {
- return DMT_ELF;
- }
- return DMT_PE;
-}
-
/***********************************************************************
* SymLoadModule (DBGHELP.@)
*/
@@ -489,8 +459,6 @@ DWORD64 WINAPI SymLoadModuleExW(HANDLE
{
struct process* pcs;
struct module* module = NULL;
- char ImageName[MAX_PATH], amodname[MAX_PATH], *ModuleName;
-
TRACE("(%p %p %s %s %s %08x %p %08x)\n",
hProcess, hFile, debugstr_w(wImageName), debugstr_w(wModuleName),
@@ -505,8 +473,6 @@ DWORD64 WINAPI SymLoadModuleExW(HANDLE
if (Flags & SLMFLAG_VIRTUAL)
{
- WideCharToMultiByte(CP_ACP,0, wImageName, -1, ImageName, MAX_PATH,
- NULL, NULL);
module = module_new(pcs, wImageName, module_get_type_by_name(wImageName),
TRUE, (DWORD)BaseOfDll, SizeOfDll, 0, 0);
if (!module) return FALSE;
@@ -524,15 +490,6 @@ DWORD64 WINAPI SymLoadModuleExW(HANDLE
/* this is a Wine extension to the API just to redo the synchronisation */
if (!wImageName && !hFile) return 0;
- WideCharToMultiByte(CP_ACP,0, wImageName, -1, ImageName, MAX_PATH,
- NULL, NULL);
-
- if (wModuleName)
- WideCharToMultiByte(CP_ACP,0, wModuleName, -1, ModuleName = amodname, MAX_PATH,
- NULL, NULL);
- else
- ModuleName = NULL;
-
if (module_is_elf_container_loaded(pcs, wImageName, wModuleName))
{
/* force the loading of DLL as builtin */
diff --git a/dlls/dbghelp/path.c b/dlls/dbghelp/path.c
index d051feb..5dda1c6 100644
--- a/dlls/dbghelp/path.c
+++ b/dlls/dbghelp/path.c
@@ -392,20 +392,26 @@ static BOOL CALLBACK sffip_cb(LPCWSTR bu
}
break;
case DMT_ELF:
- if (elf_fetch_file_info(buffer, 0, &size, &checksum))
{
- if (checksum != (DWORD_PTR)s->id)
+ char fn[MAX_PATH];
+
+ WideCharToMultiByte(CP_ACP, 0, buffer, -1, fn, MAX_PATH, NULL, NULL);
+
+ if (elf_fetch_file_info(fn, 0, &size, &checksum))
+ {
+ if (checksum != (DWORD_PTR)s->id)
+ {
+ WARN("Found %s, but wrong checksums: %08x %08lx\n",
+ debugstr_w(buffer), checksum, (DWORD_PTR)s->id);
+ return FALSE;
+ }
+ }
+ else
{
- WARN("Found %s, but wrong checksums: %08x %08lx\n",
- debugstr_w(buffer), checksum, (DWORD_PTR)s->id);
+ WARN("Couldn't read %s\n", debugstr_w(buffer));
return FALSE;
}
}
- else
- {
- WARN("Couldn't read %s\n", debugstr_w(buffer));
- return FALSE;
- }
break;
case DMT_PDB:
{
diff --git a/dlls/dbghelp/pe_module.c b/dlls/dbghelp/pe_module.c
index 800692a..58cfb6f 100644
--- a/dlls/dbghelp/pe_module.c
+++ b/dlls/dbghelp/pe_module.c
@@ -77,7 +77,7 @@ static BOOL pe_load_stabs(const struct p
return ret;
}
-static BOOL CALLBACK dbg_match(char* file, void* user)
+static BOOL CALLBACK dbg_match(const char* file, void* user)
{
/* accept first file */
return FALSE;
More information about the wine-patches
mailing list