[4/6] dbghelp: Don't define 32-bit source file functions in Win64.

Mike Ruprecht cmaiku at gmail.com
Fri Mar 6 01:36:21 CST 2009


---
 dlls/dbghelp/dbghelp.spec |    8 ++++----
 dlls/dbghelp/symbol.c     |    6 ++++++
 include/dbghelp.h         |   19 +++++++++++++++++++
 3 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/dlls/dbghelp/dbghelp.spec b/dlls/dbghelp/dbghelp.spec
index 81b46d4..cfbcf90 100644
--- a/dlls/dbghelp/dbghelp.spec
+++ b/dlls/dbghelp/dbghelp.spec
@@ -83,16 +83,16 @@
 @ stub SymGetFileLineOffsets64
 @ stub SymGetHomeDirectory
 @ stub SymGetHomeDirectoryW
-@ stdcall SymGetLineFromAddr(long long ptr ptr)
+@ stdcall -i386 SymGetLineFromAddr(long long ptr ptr)
 @ stdcall SymGetLineFromAddr64(long double ptr ptr)
 @ stdcall SymGetLineFromAddrW64(long double ptr ptr)
-@ stub SymGetLineFromName
+@ stub -i386 SymGetLineFromName
 @ stub SymGetLineFromName64
 @ stub SymGetLineFromNameW64
-@ stdcall SymGetLineNext(long ptr)
+@ stdcall -i386 SymGetLineNext(long ptr)
 @ stdcall SymGetLineNext64(long ptr)
 @ stub SymGetLineNextW64
-@ stdcall SymGetLinePrev(long ptr)
+@ stdcall -i386 SymGetLinePrev(long ptr)
 @ stdcall SymGetLinePrev64(long ptr)
 @ stub SymGetLinePrevW64
 @ stdcall -i386 SymGetModuleBase(long long)
diff --git a/dlls/dbghelp/symbol.c b/dlls/dbghelp/symbol.c
index 3c64ba4..4d4a0b6 100644
--- a/dlls/dbghelp/symbol.c
+++ b/dlls/dbghelp/symbol.c
@@ -1442,6 +1442,7 @@ BOOL WINAPI SymGetSymPrev(HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol)
 }
 #endif
 
+#if defined(_IMAGEHLP_SOURCE_) || !defined(_IMAGEHLP64)
 /******************************************************************
  *		SymGetLineFromAddr (DBGHELP.@)
  *
@@ -1468,6 +1469,7 @@ BOOL WINAPI SymGetLineFromAddr(HANDLE hProcess, DWORD dwAddr,
     *pdwDisplacement = dwAddr - Line->Address;
     return TRUE;
 }
+#endif
 
 /******************************************************************
  *		copy_line_64_from_32 (internal)
@@ -1549,6 +1551,7 @@ BOOL WINAPI SymGetLineFromAddrW64(HANDLE hProcess, DWORD64 dwAddr,
     return TRUE;
 }
 
+#if defined(_IMAGEHLP_SOURCE_) || !defined(_IMAGEHLP64)
 /******************************************************************
  *		SymGetLinePrev (DBGHELP.@)
  *
@@ -1598,6 +1601,7 @@ BOOL WINAPI SymGetLinePrev(HANDLE hProcess, PIMAGEHLP_LINE Line)
     SetLastError(ERROR_NO_MORE_ITEMS); /* FIXME */
     return FALSE;
 }
+#endif
 
 /******************************************************************
  *		SymGetLinePrev64 (DBGHELP.@)
@@ -1635,6 +1639,7 @@ BOOL symt_get_func_line_next(const struct module* module, PIMAGEHLP_LINE line)
     return FALSE;
 }
 
+#if defined(_IMAGEHLP_SOURCE_) || !defined(_IMAGEHLP64)
 /******************************************************************
  *		SymGetLineNext (DBGHELP.@)
  *
@@ -1655,6 +1660,7 @@ BOOL WINAPI SymGetLineNext(HANDLE hProcess, PIMAGEHLP_LINE Line)
     SetLastError(ERROR_NO_MORE_ITEMS); /* FIXME */
     return FALSE;
 }
+#endif
 
 /******************************************************************
  *		SymGetLineNext64 (DBGHELP.@)
diff --git a/include/dbghelp.h b/include/dbghelp.h
index da52990..821a979 100644
--- a/include/dbghelp.h
+++ b/include/dbghelp.h
@@ -1147,19 +1147,38 @@ typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACKW)(PSOURCEFILEW, PVOID);
 BOOL WINAPI SymEnumSourceFiles(HANDLE, ULONG64, PCSTR, PSYM_ENUMSOURCEFILES_CALLBACK,
                                PVOID);
 BOOL WINAPI SymEnumSourceFilesW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMSOURCEFILES_CALLBACKW, PVOID);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetLineFromAddr SymGetLineFromAddr64
+#define SymGetLineFromAddrW SymGetLineFromAddrW64
+#else
 BOOL WINAPI SymGetLineFromAddr(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINE);
 BOOL WINAPI SymGetLineFromAddrW(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINEW);
+#endif
 BOOL WINAPI SymGetLineFromAddr64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64);
 BOOL WINAPI SymGetLineFromAddrW64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINEW64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetLinePrev SymGetLinePrev64
+#define SymGetLinePrevW SymGetLinePrevW64
+#else
 BOOL WINAPI SymGetLinePrev(HANDLE, PIMAGEHLP_LINE);
 BOOL WINAPI SymGetLinePrevW(HANDLE, PIMAGEHLP_LINEW);
+#endif
 BOOL WINAPI SymGetLinePrev64(HANDLE, PIMAGEHLP_LINE64);
 BOOL WINAPI SymGetLinePrevW64(HANDLE, PIMAGEHLP_LINEW64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetLineNext SymGetLineNext64
+#define SymGetLineNextW SymGetLineNextW64
+#else
 BOOL WINAPI SymGetLineNext(HANDLE, PIMAGEHLP_LINE);
 BOOL WINAPI SymGetLineNextW(HANDLE, PIMAGEHLP_LINEW);
+#endif
 BOOL WINAPI SymGetLineNext64(HANDLE, PIMAGEHLP_LINE64);
 BOOL WINAPI SymGetLineNextW64(HANDLE, PIMAGEHLP_LINEW64);
+#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
+#define SymGetLineFromName SymGetLineFromName64
+#else
 BOOL WINAPI SymGetLineFromName(HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE);
+#endif
 BOOL WINAPI SymGetLineFromName64(HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE64);
 BOOL WINAPI SymGetLineFromNameW64(HANDLE, PCWSTR, PCWSTR, DWORD, PLONG, PIMAGEHLP_LINEW64);
 ULONG WINAPI SymGetFileLineOffsets64(HANDLE, PCSTR, PCSTR, PDWORD64, ULONG);
-- 
1.6.0.4




More information about the wine-patches mailing list