Alexandre Julliard : ntdll: Move create_startup_info() to env.c.

Alexandre Julliard julliard at winehq.org
Thu Apr 15 16:57:44 CDT 2021


Module: wine
Branch: master
Commit: 8e7c6422e5a196b0e9acfaa4ca05b73468ec5a9f
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=8e7c6422e5a196b0e9acfaa4ca05b73468ec5a9f

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Apr 15 14:44:50 2021 +0200

ntdll: Move create_startup_info() to env.c.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/unix/env.c          | 69 ++++++++++++++++++++++++++++++++++++++++++
 dlls/ntdll/unix/process.c      | 68 -----------------------------------------
 dlls/ntdll/unix/unix_private.h |  1 +
 3 files changed, 70 insertions(+), 68 deletions(-)

diff --git a/dlls/ntdll/unix/env.c b/dlls/ntdll/unix/env.c
index 01d4f3ea418..33f96c65a7c 100644
--- a/dlls/ntdll/unix/env.c
+++ b/dlls/ntdll/unix/env.c
@@ -1897,6 +1897,23 @@ static inline WCHAR *get_dos_path( WCHAR *nt_path )
     return nt_path;
 }
 
+static inline const WCHAR *get_params_string( const RTL_USER_PROCESS_PARAMETERS *params,
+                                              const UNICODE_STRING *str )
+{
+    if (params->Flags & PROCESS_PARAMS_FLAG_NORMALIZED) return str->Buffer;
+    return (const WCHAR *)((const char *)params + (UINT_PTR)str->Buffer);
+}
+
+static inline DWORD append_string( void **ptr, const RTL_USER_PROCESS_PARAMETERS *params,
+                                   const UNICODE_STRING *str )
+{
+    const WCHAR *buffer = get_params_string( params, str );
+    memcpy( *ptr, buffer, str->Length );
+    *ptr = (WCHAR *)*ptr + str->Length / sizeof(WCHAR);
+    return str->Length;
+}
+
+
 /*************************************************************************
  *		build_initial_params
  *
@@ -2113,6 +2130,58 @@ void init_startup_info(void)
 }
 
 
+/***********************************************************************
+ *           create_startup_info
+ */
+void *create_startup_info( const RTL_USER_PROCESS_PARAMETERS *params, DWORD *info_size )
+{
+    startup_info_t *info;
+    DWORD size;
+    void *ptr;
+
+    size = sizeof(*info);
+    size += params->CurrentDirectory.DosPath.Length;
+    size += params->DllPath.Length;
+    size += params->ImagePathName.Length;
+    size += params->CommandLine.Length;
+    size += params->WindowTitle.Length;
+    size += params->Desktop.Length;
+    size += params->ShellInfo.Length;
+    size += params->RuntimeInfo.Length;
+    size = (size + 1) & ~1;
+    *info_size = size;
+
+    if (!(info = calloc( size, 1 ))) return NULL;
+
+    info->debug_flags   = params->DebugFlags;
+    info->console_flags = params->ConsoleFlags;
+    info->console       = wine_server_obj_handle( params->ConsoleHandle );
+    info->hstdin        = wine_server_obj_handle( params->hStdInput );
+    info->hstdout       = wine_server_obj_handle( params->hStdOutput );
+    info->hstderr       = wine_server_obj_handle( params->hStdError );
+    info->x             = params->dwX;
+    info->y             = params->dwY;
+    info->xsize         = params->dwXSize;
+    info->ysize         = params->dwYSize;
+    info->xchars        = params->dwXCountChars;
+    info->ychars        = params->dwYCountChars;
+    info->attribute     = params->dwFillAttribute;
+    info->flags         = params->dwFlags;
+    info->show          = params->wShowWindow;
+
+    ptr = info + 1;
+    info->curdir_len = append_string( &ptr, params, &params->CurrentDirectory.DosPath );
+    info->dllpath_len = append_string( &ptr, params, &params->DllPath );
+    info->imagepath_len = append_string( &ptr, params, &params->ImagePathName );
+    info->cmdline_len = append_string( &ptr, params, &params->CommandLine );
+    info->title_len = append_string( &ptr, params, &params->WindowTitle );
+    info->desktop_len = append_string( &ptr, params, &params->Desktop );
+    info->shellinfo_len = append_string( &ptr, params, &params->ShellInfo );
+    info->runtime_len = append_string( &ptr, params, &params->RuntimeInfo );
+    return info;
+}
+
+
 /**************************************************************************
  *      NtGetNlsSectionPtr  (NTDLL.@)
  */
diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c
index 8d50f5a006d..bd3bba7ca8f 100644
--- a/dlls/ntdll/unix/process.c
+++ b/dlls/ntdll/unix/process.c
@@ -156,74 +156,6 @@ static char **build_argv( const UNICODE_STRING *cmdline, int reserved )
 }
 
 
-static inline const WCHAR *get_params_string( const RTL_USER_PROCESS_PARAMETERS *params,
-                                              const UNICODE_STRING *str )
-{
-    if (params->Flags & PROCESS_PARAMS_FLAG_NORMALIZED) return str->Buffer;
-    return (const WCHAR *)((const char *)params + (UINT_PTR)str->Buffer);
-}
-
-static inline DWORD append_string( void **ptr, const RTL_USER_PROCESS_PARAMETERS *params,
-                                   const UNICODE_STRING *str )
-{
-    const WCHAR *buffer = get_params_string( params, str );
-    memcpy( *ptr, buffer, str->Length );
-    *ptr = (WCHAR *)*ptr + str->Length / sizeof(WCHAR);
-    return str->Length;
-}
-
-/***********************************************************************
- *           create_startup_info
- */
-static startup_info_t *create_startup_info( const RTL_USER_PROCESS_PARAMETERS *params, DWORD *info_size )
-{
-    startup_info_t *info;
-    DWORD size;
-    void *ptr;
-
-    size = sizeof(*info);
-    size += params->CurrentDirectory.DosPath.Length;
-    size += params->DllPath.Length;
-    size += params->ImagePathName.Length;
-    size += params->CommandLine.Length;
-    size += params->WindowTitle.Length;
-    size += params->Desktop.Length;
-    size += params->ShellInfo.Length;
-    size += params->RuntimeInfo.Length;
-    size = (size + 1) & ~1;
-    *info_size = size;
-
-    if (!(info = calloc( size, 1 ))) return NULL;
-
-    info->debug_flags   = params->DebugFlags;
-    info->console_flags = params->ConsoleFlags;
-    info->console       = wine_server_obj_handle( params->ConsoleHandle );
-    info->hstdin        = wine_server_obj_handle( params->hStdInput );
-    info->hstdout       = wine_server_obj_handle( params->hStdOutput );
-    info->hstderr       = wine_server_obj_handle( params->hStdError );
-    info->x             = params->dwX;
-    info->y             = params->dwY;
-    info->xsize         = params->dwXSize;
-    info->ysize         = params->dwYSize;
-    info->xchars        = params->dwXCountChars;
-    info->ychars        = params->dwYCountChars;
-    info->attribute     = params->dwFillAttribute;
-    info->flags         = params->dwFlags;
-    info->show          = params->wShowWindow;
-
-    ptr = info + 1;
-    info->curdir_len = append_string( &ptr, params, &params->CurrentDirectory.DosPath );
-    info->dllpath_len = append_string( &ptr, params, &params->DllPath );
-    info->imagepath_len = append_string( &ptr, params, &params->ImagePathName );
-    info->cmdline_len = append_string( &ptr, params, &params->CommandLine );
-    info->title_len = append_string( &ptr, params, &params->WindowTitle );
-    info->desktop_len = append_string( &ptr, params, &params->Desktop );
-    info->shellinfo_len = append_string( &ptr, params, &params->ShellInfo );
-    info->runtime_len = append_string( &ptr, params, &params->RuntimeInfo );
-    return info;
-}
-
-
 /***********************************************************************
  *           get_so_file_info
  */
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
index 4c50307fc6b..e1732b0017a 100644
--- a/dlls/ntdll/unix/unix_private.h
+++ b/dlls/ntdll/unix/unix_private.h
@@ -141,6 +141,7 @@ extern struct ldt_copy __wine_ldt_copy DECLSPEC_HIDDEN;
 
 extern void init_environment( int argc, char *argv[], char *envp[] ) DECLSPEC_HIDDEN;
 extern void init_startup_info(void) DECLSPEC_HIDDEN;
+extern void *create_startup_info( const RTL_USER_PROCESS_PARAMETERS *params, DWORD *info_size ) DECLSPEC_HIDDEN;
 extern DWORD ntdll_umbstowcs( const char *src, DWORD srclen, WCHAR *dst, DWORD dstlen ) DECLSPEC_HIDDEN;
 extern int ntdll_wcstoumbs( const WCHAR *src, DWORD srclen, char *dst, DWORD dstlen, BOOL strict ) DECLSPEC_HIDDEN;
 extern char **build_envp( const WCHAR *envW ) DECLSPEC_HIDDEN;




More information about the wine-cvs mailing list