wine/dlls/msvcrt undname.c
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Nov 18 06:06:00 CST 2005
ChangeSet ID: 21323
CVSROOT: /opt/cvs-commit
Module name: wine
Changes by: julliard at winehq.org 2005/11/18 06:06:00
Modified files:
dlls/msvcrt : undname.c
Log message:
Eric Pouech <eric.pouech at wanadoo.fr>
Ensures, when we cannot demangle the string, to return the mangled
name instead of a NULL pointer.
Patch: http://cvs.winehq.org/patch.py?id=21323
Old revision New revision Changes Path
1.4 1.5 +10 -12 wine/dlls/msvcrt/undname.c
Index: wine/dlls/msvcrt/undname.c
diff -u -p wine/dlls/msvcrt/undname.c:1.4 wine/dlls/msvcrt/undname.c:1.5
--- wine/dlls/msvcrt/undname.c:1.4 18 Nov 2005 12: 6: 0 -0000
+++ wine/dlls/msvcrt/undname.c 18 Nov 2005 12: 6: 0 -0000
@@ -1152,6 +1152,7 @@ char* __unDNameEx(char* buffer, const ch
void* unknown, unsigned short int flags)
{
struct parsed_symbol sym;
+ const char* result;
TRACE("(%p,%s,%d,%p,%p,%p,%x) stub!\n",
buffer, mangled, buflen, memget, memfree, unknown, flags);
@@ -1171,20 +1172,17 @@ char* __unDNameEx(char* buffer, const ch
sym.mem_free_ptr = memfree;
sym.current = mangled;
- if (symbol_demangle(&sym))
+ result = symbol_demangle(&sym) ? sym.result : mangled;
+ if (buffer && buflen)
{
- if (buffer && buflen)
- {
- memcpy(buffer, sym.result, buflen - 1);
- buffer[buflen - 1] = '\0';
- }
- else
- {
- buffer = memget(strlen(sym.result) + 1);
- if (buffer) strcpy(buffer, sym.result);
- }
+ memcpy(buffer, result, buflen - 1);
+ buffer[buflen - 1] = '\0';
+ }
+ else
+ {
+ buffer = memget(strlen(result) + 1);
+ if (buffer) strcpy(buffer, result);
}
- else buffer = NULL;
und_free_all(&sym);
More information about the wine-cvs
mailing list