mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Added patch to implement dbghelp.UnDecorateSymbolNameW.
This commit is contained in:
parent
d96eed9e17
commit
8ccce27f89
@ -39,7 +39,7 @@ Wine. All those differences are also documented on the
|
||||
Included bug fixes and improvements
|
||||
-----------------------------------
|
||||
|
||||
**Bug fixes and features included in the next upcoming release [15]:**
|
||||
**Bug fixes and features included in the next upcoming release [16]:**
|
||||
|
||||
* Add stub for D3DXTessellateNPatches
|
||||
* Add stubs for D3DCompile2 and D3DCompileFromFile
|
||||
@ -52,6 +52,7 @@ Included bug fixes and improvements
|
||||
* Fix security cookie handling for UPX compressed executables ([Wine Bug #38949](https://bugs.winehq.org/show_bug.cgi?id=38949))
|
||||
* Forward exitcode from child process when in wineconsole
|
||||
* Implement AMStream GetMultiMediaStream functions ([Wine Bug #37090](https://bugs.winehq.org/show_bug.cgi?id=37090))
|
||||
* Implement dbghelp.UnDecorateSymbolNameW ([Wine Bug #38828](https://bugs.winehq.org/show_bug.cgi?id=38828))
|
||||
* Return dummy ID3DXSkinInfo interface when skinning info not present ([Wine Bug #33904](https://bugs.winehq.org/show_bug.cgi?id=33904))
|
||||
* Share source of d3dx9_36 with d3dx9_33 to avoid Wine DLL forwards ([Wine Bug #21817](https://bugs.winehq.org/show_bug.cgi?id=21817))
|
||||
* Silence repeated LocaleNameToLCID/LCIDToLocaleName unsupported flags FIXMEs ([Wine Bug #30076](https://bugs.winehq.org/show_bug.cgi?id=30076))
|
||||
|
3
debian/changelog
vendored
3
debian/changelog
vendored
@ -1,4 +1,4 @@
|
||||
wine-staging (1.7.48) UNRELEASED; urgency=low
|
||||
ine-staging (1.7.48) UNRELEASED; urgency=low
|
||||
* Update patches for d3dx9_36.D3DXGetShader{Input,Output}Semantics and add
|
||||
additional tests.
|
||||
* Update patchset to query GPU infos with GLX_MESA_query_renderer extension
|
||||
@ -21,6 +21,7 @@ wine-staging (1.7.48) UNRELEASED; urgency=low
|
||||
* Added patch to implement AMStream GetMultiMediaStream functions.
|
||||
* Added patch with stub for D3DXTessellateNPatches.
|
||||
* Added patch with stubs for D3DCompile2 and D3DCompileFromFile.
|
||||
* Added patch to implement dbghelp.UnDecorateSymbolNameW.
|
||||
* Removed patch to allow to enable/disable InsertMode in wineconsole settings
|
||||
(accepted upstream).
|
||||
* Removed patch to improve IoGetDeviceObjectPointer stub to appease SecuROM
|
||||
|
@ -0,0 +1,114 @@
|
||||
From 03999c58b169eac57f724f830e147f095a99989c Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 28 Jul 2015 22:58:03 +0200
|
||||
Subject: dbghelp: Implement UnDecorateSymbolNameW.
|
||||
|
||||
---
|
||||
dlls/dbghelp/dbghelp.spec | 4 ++--
|
||||
dlls/dbghelp/symbol.c | 61 +++++++++++++++++++++++++++++++++++++----------
|
||||
2 files changed, 50 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/dlls/dbghelp/dbghelp.spec b/dlls/dbghelp/dbghelp.spec
|
||||
index 4772358..6004f95 100644
|
||||
--- a/dlls/dbghelp/dbghelp.spec
|
||||
+++ b/dlls/dbghelp/dbghelp.spec
|
||||
@@ -183,8 +183,8 @@
|
||||
@ stdcall SymUnDName64(ptr str long)
|
||||
@ stdcall SymUnloadModule(long long)
|
||||
@ stdcall SymUnloadModule64(long int64)
|
||||
-@ stdcall UnDecorateSymbolName(str str long long)
|
||||
-@ stub UnDecorateSymbolNameW
|
||||
+@ stdcall UnDecorateSymbolName(str ptr long long)
|
||||
+@ stdcall UnDecorateSymbolNameW(wstr ptr long long)
|
||||
@ stdcall UnmapDebugInformation(ptr)
|
||||
@ stdcall WinDbgExtensionDllInit(ptr long long)
|
||||
#@ stub block
|
||||
diff --git a/dlls/dbghelp/symbol.c b/dlls/dbghelp/symbol.c
|
||||
index cbe232b..d4624ae 100644
|
||||
--- a/dlls/dbghelp/symbol.c
|
||||
+++ b/dlls/dbghelp/symbol.c
|
||||
@@ -1751,21 +1751,13 @@ BOOL WINAPI SymUnDName64(PIMAGEHLP_SYMBOL64 sym, PSTR UnDecName, DWORD UnDecName
|
||||
|
||||
static void * CDECL und_alloc(size_t len) { return HeapAlloc(GetProcessHeap(), 0, len); }
|
||||
static void CDECL und_free (void* ptr) { HeapFree(GetProcessHeap(), 0, ptr); }
|
||||
-
|
||||
-/***********************************************************************
|
||||
- * UnDecorateSymbolName (DBGHELP.@)
|
||||
- */
|
||||
-DWORD WINAPI UnDecorateSymbolName(PCSTR DecoratedName, PSTR UnDecoratedName,
|
||||
- DWORD UndecoratedLength, DWORD Flags)
|
||||
+static char * CDECL und_name(char *buffer, const char *mangled, int buflen, unsigned short int flags)
|
||||
{
|
||||
/* undocumented from msvcrt */
|
||||
static HANDLE hMsvcrt;
|
||||
static char* (CDECL *p_undname)(char*, const char*, int, void* (CDECL*)(size_t), void (CDECL*)(void*), unsigned short);
|
||||
static const WCHAR szMsvcrt[] = {'m','s','v','c','r','t','.','d','l','l',0};
|
||||
|
||||
- TRACE("(%s, %p, %d, 0x%08x)\n",
|
||||
- debugstr_a(DecoratedName), UnDecoratedName, UndecoratedLength, Flags);
|
||||
-
|
||||
if (!p_undname)
|
||||
{
|
||||
if (!hMsvcrt) hMsvcrt = LoadLibraryW(szMsvcrt);
|
||||
@@ -1773,11 +1765,54 @@ DWORD WINAPI UnDecorateSymbolName(PCSTR DecoratedName, PSTR UnDecoratedName,
|
||||
if (!p_undname) return 0;
|
||||
}
|
||||
|
||||
- if (!UnDecoratedName) return 0;
|
||||
- if (!p_undname(UnDecoratedName, DecoratedName, UndecoratedLength,
|
||||
- und_alloc, und_free, Flags))
|
||||
+ return p_undname(buffer, mangled, buflen, und_alloc, und_free, flags);
|
||||
+}
|
||||
+
|
||||
+/***********************************************************************
|
||||
+ * UnDecorateSymbolName (DBGHELP.@)
|
||||
+ */
|
||||
+DWORD WINAPI UnDecorateSymbolName(PCSTR decorated_name, PSTR undecorated_name,
|
||||
+ DWORD undecorated_length, DWORD flags)
|
||||
+{
|
||||
+ TRACE("(%s, %p, %d, 0x%08x)\n",
|
||||
+ debugstr_a(decorated_name), undecorated_name, undecorated_length, flags);
|
||||
+
|
||||
+ if (!undecorated_name)
|
||||
+ return 0;
|
||||
+ if (!und_name(undecorated_name, decorated_name, undecorated_length, flags))
|
||||
return 0;
|
||||
- return strlen(UnDecoratedName);
|
||||
+ return strlen(undecorated_name);
|
||||
+}
|
||||
+
|
||||
+/***********************************************************************
|
||||
+ * UnDecorateSymbolNameW (DBGHELP.@)
|
||||
+ */
|
||||
+DWORD WINAPI UnDecorateSymbolNameW(PCWSTR decorated_name, PWSTR undecorated_name,
|
||||
+ DWORD undecorated_length, DWORD flags)
|
||||
+{
|
||||
+ char *buf, *ptr;
|
||||
+ int len;
|
||||
+
|
||||
+ TRACE("(%s, %p, %d, 0x%08x)\n",
|
||||
+ debugstr_w(decorated_name), undecorated_name, undecorated_length, flags);
|
||||
+
|
||||
+ if (!undecorated_name)
|
||||
+ return 0;
|
||||
+
|
||||
+ len = WideCharToMultiByte(CP_ACP, 0, decorated_name, -1, NULL, 0, NULL, NULL);
|
||||
+ if (!(buf = HeapAlloc(GetProcessHeap(), 0, len)))
|
||||
+ return 0;
|
||||
+ WideCharToMultiByte(CP_ACP, 0, decorated_name, -1, buf, len, NULL, NULL);
|
||||
+
|
||||
+ ptr = und_name(NULL, buf, 0, flags);
|
||||
+ HeapFree(GetProcessHeap(), 0, buf);
|
||||
+ if (!ptr)
|
||||
+ return 0;
|
||||
+
|
||||
+ MultiByteToWideChar(CP_ACP, 0, ptr, -1, undecorated_name, undecorated_length);
|
||||
+ undecorated_name[undecorated_length - 1] = 0;
|
||||
+ HeapFree(GetProcessHeap(), 0, ptr);
|
||||
+ return strlenW(undecorated_name);
|
||||
}
|
||||
|
||||
#define WILDCHAR(x) (-(x))
|
||||
--
|
||||
2.4.5
|
||||
|
1
patches/dbghelp-UnDecorateSymbolNameW/definition
Normal file
1
patches/dbghelp-UnDecorateSymbolNameW/definition
Normal file
@ -0,0 +1 @@
|
||||
Fixes: [38828] Implement dbghelp.UnDecorateSymbolNameW
|
@ -109,6 +109,7 @@ patch_enable_all ()
|
||||
enable_d3dx9_36_Texture_Align="$1"
|
||||
enable_d3dx9_36_UpdateSkinnedMesh="$1"
|
||||
enable_dbghelp_Debug_Symbols="$1"
|
||||
enable_dbghelp_UnDecorateSymbolNameW="$1"
|
||||
enable_ddraw_EnumSurfaces="$1"
|
||||
enable_ddraw_IDirect3DTexture2_Load="$1"
|
||||
enable_ddraw_d3d_execute_buffer="$1"
|
||||
@ -404,6 +405,9 @@ patch_enable ()
|
||||
dbghelp-Debug_Symbols)
|
||||
enable_dbghelp_Debug_Symbols="$2"
|
||||
;;
|
||||
dbghelp-UnDecorateSymbolNameW)
|
||||
enable_dbghelp_UnDecorateSymbolNameW="$2"
|
||||
;;
|
||||
ddraw-EnumSurfaces)
|
||||
enable_ddraw_EnumSurfaces="$2"
|
||||
;;
|
||||
@ -2519,6 +2523,21 @@ if test "$enable_dbghelp_Debug_Symbols" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset dbghelp-UnDecorateSymbolNameW
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38828] Implement dbghelp.UnDecorateSymbolNameW
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/dbghelp/dbghelp.spec, dlls/dbghelp/symbol.c
|
||||
# |
|
||||
if test "$enable_dbghelp_UnDecorateSymbolNameW" -eq 1; then
|
||||
patch_apply dbghelp-UnDecorateSymbolNameW/0001-dbghelp-Implement-UnDecorateSymbolNameW.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "dbghelp: Implement UnDecorateSymbolNameW.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ddraw-EnumSurfaces
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -4896,6 +4915,18 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-wined3d_swapchain_present
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/swapchain.c
|
||||
# |
|
||||
if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then
|
||||
patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-MESA_GPU_Info
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -4980,18 +5011,6 @@ if test "$enable_wined3d_resource_check_usage" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-wined3d_swapchain_present
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/wined3d/swapchain.c
|
||||
# |
|
||||
if test "$enable_wined3d_wined3d_swapchain_present" -eq 1; then
|
||||
patch_apply wined3d-wined3d_swapchain_present/0001-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset wined3d-CSMT_Main
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
Loading…
Reference in New Issue
Block a user