Module: wine Branch: master Commit: 4e6da5942eef617e576df0f74a3617e1bc1aca27 URL: https://source.winehq.org/git/wine.git/?a=commit;h=4e6da5942eef617e576df0f74...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Apr 15 15:02:19 2021 +0200
ntdll: Get rid of the rebuild_nt_name() helper.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntdll/unix/file.c | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c index 5c68218f09d..b4d834b7855 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c @@ -2963,29 +2963,6 @@ static NTSTATUS find_drive_rootA( LPCSTR *ppath, unsigned int len, int *drive_re }
-/****************************************************************************** - * rebuild_nt_name - */ -static void rebuild_nt_name( const UNICODE_STRING *nameW, DWORD prefix_len, - const char *unix_name, UNICODE_STRING *nt_name ) -{ - WCHAR *buf; - DWORD len; - - while (*unix_name == '/') unix_name++; - nt_name->MaximumLength = (prefix_len + strlen(unix_name) + 2) * sizeof(WCHAR); - if (!(buf = malloc( nt_name->MaximumLength ))) return; - nt_name->Buffer = buf; - memcpy( buf, nameW->Buffer, prefix_len * sizeof(WCHAR) ); - if (prefix_len && buf[prefix_len - 1] != '\') buf[prefix_len++] = '\'; - buf += prefix_len; - len = ntdll_umbstowcs( unix_name, strlen(unix_name), buf, strlen(unix_name) ); - for (; len; len--, buf++) if (*buf == '/') *buf = '\'; - *buf = 0; - nt_name->Length = (buf - nt_name->Buffer) * sizeof(WCHAR); -} - - /****************************************************************************** * find_file_id * @@ -3110,7 +3087,15 @@ done: { TRACE( "%s -> %s\n", wine_dbgstr_longlong(file_id), debugstr_a(unix_name) ); *unix_name_ret = unix_name; - if (nt_name) rebuild_nt_name( attr->ObjectName, 0, unix_name, nt_name ); + + nt_name->MaximumLength = (strlen(unix_name) + 1) * sizeof(WCHAR); + if ((nt_name->Buffer = malloc( nt_name->MaximumLength ))) + { + DWORD i, len = ntdll_umbstowcs( unix_name, strlen(unix_name), nt_name->Buffer, strlen(unix_name) ); + nt_name->Buffer[len] = 0; + nt_name->Length = len * sizeof(WCHAR); + for (i = 0; i < len; i++) if (nt_name->Buffer[i] == '/') nt_name->Buffer[i] = '\'; + } } else {