diff --git a/patches/comdlg32-lpstrFileTitle/0001-comdlg32-Postpone-setting-ofn-lpstrFileTitle-to-work.patch b/patches/comdlg32-lpstrFileTitle/0001-comdlg32-Postpone-setting-ofn-lpstrFileTitle-to-work.patch index 19c4ea98..8738bd33 100644 --- a/patches/comdlg32-lpstrFileTitle/0001-comdlg32-Postpone-setting-ofn-lpstrFileTitle-to-work.patch +++ b/patches/comdlg32-lpstrFileTitle/0001-comdlg32-Postpone-setting-ofn-lpstrFileTitle-to-work.patch @@ -1,4 +1,4 @@ -From 022ab9291e3d8c324c7c2dacbfb0b23e234fb4ae Mon Sep 17 00:00:00 2001 +From a1fc59cdba707d5c4262988b4bfd6612b77e429f Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 26 Apr 2016 18:28:21 +0800 Subject: comdlg32: Postpone setting ofn->lpstrFileTitle to work around an @@ -10,42 +10,38 @@ approximately 428 bytes above the current stack pointer, and since Wine's GetSaveFileNameW() uses more than 4096 bytes one of internal stack frames is guaranteed to be trashed after copying file name to ofn->lpstrFileTitle. --- - dlls/comdlg32/filedlg.c | 31 ++++++++++++++----------------- - 1 file changed, 14 insertions(+), 17 deletions(-) + dlls/comdlg32/filedlg.c | 34 +++++++++++++++++----------------- + 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/dlls/comdlg32/filedlg.c b/dlls/comdlg32/filedlg.c -index 1453396..6a6a093 100644 +index 0c9f34a84e8..cde474936ce 100644 --- a/dlls/comdlg32/filedlg.c +++ b/dlls/comdlg32/filedlg.c -@@ -463,6 +463,13 @@ static BOOL GetFileDialog95A(LPOPENFILENAMEA ofn,UINT iDlgType) - ret = FALSE; - } +@@ -463,6 +463,23 @@ static BOOL GetFileDialog95(FileOpenDlgInfos *info, UINT dlg_type) + ret = FALSE; + } -+ /* set the lpstrFileTitle */ -+ if (ret && ofn->lpstrFile && ofn->lpstrFileTitle) -+ { -+ LPSTR lpstrFileTitle = PathFindFileNameA(ofn->lpstrFile); -+ lstrcpynA(ofn->lpstrFileTitle, lpstrFileTitle, ofn->nMaxFileTitle); -+ } ++ /* set the lpstrFileTitle */ ++ if (ret && info->ofnInfos->lpstrFile && info->ofnInfos->lpstrFileTitle) ++ { ++ if (info->unicode) ++ { ++ LPOPENFILENAMEW ofn = info->ofnInfos; ++ WCHAR *file_title = PathFindFileNameW(ofn->lpstrFile); ++ lstrcpynW(ofn->lpstrFileTitle, file_title, ofn->nMaxFileTitle); ++ } ++ else ++ { ++ LPOPENFILENAMEA ofn = (LPOPENFILENAMEA)info->ofnInfos; ++ char *file_title = PathFindFileNameA(ofn->lpstrFile); ++ lstrcpynA(ofn->lpstrFileTitle, file_title, ofn->nMaxFileTitle); ++ } ++ } + - if (lpstrSavDir) - { - SetCurrentDirectoryA(lpstrSavDir); -@@ -555,6 +562,13 @@ static BOOL GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType) - ret = FALSE; - } - -+ /* set the lpstrFileTitle */ -+ if (ret && ofn->lpstrFile && ofn->lpstrFileTitle) -+ { -+ LPWSTR lpstrFileTitle = PathFindFileNameW(ofn->lpstrFile); -+ lstrcpynW(ofn->lpstrFileTitle, lpstrFileTitle, ofn->nMaxFileTitle); -+ } -+ - if (lpstrSavDir) - { - SetCurrentDirectoryW(lpstrSavDir); -@@ -2735,23 +2749,6 @@ BOOL FILEDLG95_OnOpen(HWND hwnd) + if (current_dir) + { + SetCurrentDirectoryW(current_dir); +@@ -2690,23 +2707,6 @@ BOOL FILEDLG95_OnOpen(HWND hwnd) fodInfos->ofnInfos->nFileExtension = (*lpszTemp) ? (lpszTemp - tempFileA) + 1 : 0; } @@ -70,5 +66,5 @@ index 1453396..6a6a093 100644 if (fodInfos->ofnInfos->lpstrCustomFilter) { -- -2.8.0 +2.11.0 diff --git a/patches/kernel32-Named_Pipe/0019-server-Return-correct-error-codes-for-NtWriteFile-wh.patch b/patches/kernel32-Named_Pipe/0019-server-Return-correct-error-codes-for-NtWriteFile-wh.patch index 6a8348f4..795c855b 100644 --- a/patches/kernel32-Named_Pipe/0019-server-Return-correct-error-codes-for-NtWriteFile-wh.patch +++ b/patches/kernel32-Named_Pipe/0019-server-Return-correct-error-codes-for-NtWriteFile-wh.patch @@ -1,4 +1,4 @@ -From 463a6541de5c95ed1ca3c79a3b5b721e2edade45 Mon Sep 17 00:00:00 2001 +From 8bba3ddd8ee9234d7c1f9d21b2aa3f4cdcdd1b3a Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 6 Jun 2015 01:21:05 +0200 Subject: server: Return correct error codes for NtWriteFile when pipes are @@ -12,7 +12,7 @@ Subject: server: Return correct error codes for NtWriteFile when pipes are 4 files changed, 46 insertions(+), 3 deletions(-) diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c -index 6f70285..817f857 100644 +index ba365ed666e..23f1a5f5f55 100644 --- a/dlls/kernel32/tests/pipe.c +++ b/dlls/kernel32/tests/pipe.c @@ -1917,7 +1917,7 @@ static void test_CloseHandle(void) @@ -25,10 +25,10 @@ index 6f70285..817f857 100644 CloseHandle(hfile); diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index 863ff78..e9efa92 100644 +index ab34d99d5b6..d0662d9ae59 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c -@@ -1239,6 +1239,9 @@ static NTSTATUS write_unix_fd(int fd, const char *buf, ULONG *total, ULONG lengt +@@ -1235,6 +1235,9 @@ static NTSTATUS write_unix_fd(int fd, const char *buf, ULONG *total, ULONG lengt return STATUS_SUCCESS; else if (errno == EFAULT) return STATUS_INVALID_USER_BUFFER; @@ -39,7 +39,7 @@ index 863ff78..e9efa92 100644 } } diff --git a/server/named_pipe.c b/server/named_pipe.c -index ad7d537..5bec9bc 100644 +index e480f31a00e..eccf6a463f5 100644 --- a/server/named_pipe.c +++ b/server/named_pipe.c @@ -147,6 +147,7 @@ static const struct object_ops named_pipe_ops = @@ -48,7 +48,7 @@ index ad7d537..5bec9bc 100644 static struct fd *pipe_server_get_fd( struct object *obj ); +static int pipe_server_close_handle( struct object *obj, struct process *process, obj_handle_t handle ); static void pipe_server_destroy( struct object *obj); - static obj_handle_t pipe_server_flush( struct fd *fd, const async_data_t *async, int blocking ); + static obj_handle_t pipe_server_flush( struct fd *fd, struct async *async, int blocking ); static enum server_fd_type pipe_server_get_fd_type( struct fd *fd ); @@ -172,7 +173,7 @@ static const struct object_ops pipe_server_ops = NULL, /* unlink_name */ @@ -65,7 +65,7 @@ index ad7d537..5bec9bc 100644 static struct fd *pipe_client_get_fd( struct object *obj ); +static int pipe_client_close_handle( struct object *obj, struct process *process, obj_handle_t handle ); static void pipe_client_destroy( struct object *obj ); - static obj_handle_t pipe_client_flush( struct fd *fd, const async_data_t *async, int blocking ); + static obj_handle_t pipe_client_flush( struct fd *fd, struct async *async, int blocking ); static enum server_fd_type pipe_client_get_fd_type( struct fd *fd ); @@ -216,7 +218,7 @@ static const struct object_ops pipe_client_ops = NULL, /* unlink_name */ @@ -135,7 +135,7 @@ index ad7d537..5bec9bc 100644 { struct pipe_client *client = (struct pipe_client *)obj; diff --git a/server/protocol.def b/server/protocol.def -index e7a55d7..f1e7af1 100644 +index e7a55d7a2d8..f1e7af1d568 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -2427,6 +2427,7 @@ enum message_type @@ -147,5 +147,5 @@ index e7a55d7..f1e7af1 100644 /* Get named pipe information by handle */ -- -2.9.0 +2.11.0 diff --git a/patches/kernel32-Named_Pipe/0021-server-Do-not-allow-to-queue-async-operation-for-bro.patch b/patches/kernel32-Named_Pipe/0021-server-Do-not-allow-to-queue-async-operation-for-bro.patch index 7c5db355..2c835c5c 100644 --- a/patches/kernel32-Named_Pipe/0021-server-Do-not-allow-to-queue-async-operation-for-bro.patch +++ b/patches/kernel32-Named_Pipe/0021-server-Do-not-allow-to-queue-async-operation-for-bro.patch @@ -1,4 +1,4 @@ -From 5ae266b76e7d946b3228faee7924af63d5f08ac2 Mon Sep 17 00:00:00 2001 +From c108a14664db758d26cffd022a8c9255b6c47b1c Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 24 Feb 2016 15:45:09 +0100 Subject: server: Do not allow to queue async operation for broken pipes. @@ -8,14 +8,14 @@ Subject: server: Do not allow to queue async operation for broken pipes. 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/server/named_pipe.c b/server/named_pipe.c -index 5bec9bc..4dda82a 100644 +index eccf6a463f5..2f1a8c8fb99 100644 --- a/server/named_pipe.c +++ b/server/named_pipe.c -@@ -153,6 +153,7 @@ static obj_handle_t pipe_server_flush( struct fd *fd, const async_data_t *async, +@@ -153,6 +153,7 @@ static obj_handle_t pipe_server_flush( struct fd *fd, struct async *async, int b static enum server_fd_type pipe_server_get_fd_type( struct fd *fd ); - static obj_handle_t pipe_server_ioctl( struct fd *fd, ioctl_code_t code, const async_data_t *async, + static obj_handle_t pipe_server_ioctl( struct fd *fd, ioctl_code_t code, struct async *async, int blocking ); -+static void pipe_server_queue_async( struct fd *fd, const async_data_t *data, int type, int count ); ++static void pipe_server_queue_async( struct fd *fd, struct async *async, int type, int count ); static const struct object_ops pipe_server_ops = { @@ -30,9 +30,9 @@ index 5bec9bc..4dda82a 100644 @@ -198,6 +199,7 @@ static int pipe_client_close_handle( struct object *obj, struct process *process static void pipe_client_destroy( struct object *obj ); - static obj_handle_t pipe_client_flush( struct fd *fd, const async_data_t *async, int blocking ); + static obj_handle_t pipe_client_flush( struct fd *fd, struct async *async, int blocking ); static enum server_fd_type pipe_client_get_fd_type( struct fd *fd ); -+static void pipe_client_queue_async( struct fd *fd, const async_data_t *data, int type, int count ); ++static void pipe_client_queue_async( struct fd *fd, struct async *async, int type, int count ); static const struct object_ops pipe_client_ops = { @@ -45,11 +45,11 @@ index 5bec9bc..4dda82a 100644 default_fd_reselect_async /* reselect_async */ }; -@@ -621,6 +623,20 @@ static obj_handle_t pipe_client_flush( struct fd *fd, const async_data_t *async, +@@ -620,6 +622,20 @@ static obj_handle_t pipe_client_flush( struct fd *fd, struct async *async, int b return 0; } -+static void pipe_client_queue_async( struct fd *fd, const async_data_t *data, int type, int count ) ++static void pipe_client_queue_async( struct fd *fd, struct async *async, int type, int count ) +{ + struct pipe_client *client = get_fd_user( fd ); + struct pipe_server *server = client->server; @@ -60,17 +60,17 @@ index 5bec9bc..4dda82a 100644 + return; + } + -+ default_fd_queue_async( fd, data, type, count ); ++ default_fd_queue_async( fd, async, type, count ); +} + static inline int is_overlapped( unsigned int options ) { return !(options & (FILE_SYNCHRONOUS_IO_ALERT | FILE_SYNCHRONOUS_IO_NONALERT)); -@@ -707,6 +723,20 @@ static obj_handle_t pipe_server_ioctl( struct fd *fd, ioctl_code_t code, const a +@@ -705,6 +721,20 @@ static obj_handle_t pipe_server_ioctl( struct fd *fd, ioctl_code_t code, struct } } -+static void pipe_server_queue_async( struct fd *fd, const async_data_t *data, int type, int count ) ++static void pipe_server_queue_async( struct fd *fd, struct async *async, int type, int count ) +{ + struct pipe_server *server = get_fd_user( fd ); + struct pipe_client *client = server->client; @@ -81,12 +81,12 @@ index 5bec9bc..4dda82a 100644 + return; + } + -+ default_fd_queue_async( fd, data, type, count ); ++ default_fd_queue_async( fd, async, type, count ); +} + static struct pipe_server *get_pipe_server_obj( struct process *process, obj_handle_t handle, unsigned int access ) { -- -2.9.0 +2.11.0 diff --git a/patches/ntdll-Junction_Points/0001-ntdll-Add-support-for-junction-point-creation.patch b/patches/ntdll-Junction_Points/0001-ntdll-Add-support-for-junction-point-creation.patch index 3b98cfa0..e86be189 100644 --- a/patches/ntdll-Junction_Points/0001-ntdll-Add-support-for-junction-point-creation.patch +++ b/patches/ntdll-Junction_Points/0001-ntdll-Add-support-for-junction-point-creation.patch @@ -1,4 +1,4 @@ -From 9976a678df5baaa8722f5be1b49962de5bbad9bb Mon Sep 17 00:00:00 2001 +From 7c4549646538a8643b4b269af12691a49cbf59be Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Thu, 16 Jan 2014 20:56:49 -0700 Subject: ntdll: Add support for junction point creation. @@ -12,10 +12,10 @@ Subject: ntdll: Add support for junction point creation. create mode 100644 include/ntifs.h diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index 93863ac..8c44514 100644 +index 210c8e385d9..79a85044fb8 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c -@@ -103,12 +103,14 @@ +@@ -108,12 +108,14 @@ #include "winioctl.h" #include "ddk/ntddk.h" #include "ddk/ntddser.h" @@ -30,7 +30,7 @@ index 93863ac..8c44514 100644 #define SECSPERDAY 86400 #define SECS_1601_TO_1970 ((369 * 365 + 89) * (ULONGLONG)SECSPERDAY) -@@ -1652,6 +1654,76 @@ NTSTATUS WINAPI SYSCALL(NtDeviceIoControlFile)(HANDLE handle, HANDLE event, +@@ -1671,6 +1673,76 @@ NTSTATUS WINAPI NtDeviceIoControlFile(HANDLE handle, HANDLE event, } @@ -107,7 +107,7 @@ index 93863ac..8c44514 100644 /************************************************************************** * NtFsControlFile [NTDLL.@] * ZwFsControlFile [NTDLL.@] -@@ -1805,11 +1877,30 @@ NTSTATUS WINAPI SYSCALL(NtFsControlFile)(HANDLE handle, HANDLE event, PIO_APC_RO +@@ -1823,11 +1895,30 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc } break; } @@ -139,7 +139,7 @@ index 93863ac..8c44514 100644 default: status = server_ioctl_file( handle, event, apc, apc_context, io, code, diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index fcbf8df..644065f 100644 +index c523bcfe0ab..08150850c76 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c @@ -37,6 +37,7 @@ @@ -150,7 +150,7 @@ index fcbf8df..644065f 100644 #ifndef IO_COMPLETION_ALL_ACCESS #define IO_COMPLETION_ALL_ACCESS 0x001F0003 -@@ -4240,6 +4241,98 @@ static void test_query_ea(void) +@@ -4494,6 +4495,98 @@ static void test_query_ea(void) #undef EA_BUFFER_SIZE } @@ -249,17 +249,17 @@ index fcbf8df..644065f 100644 START_TEST(file) { HMODULE hkernel32 = GetModuleHandleA("kernel32.dll"); -@@ -4299,4 +4392,5 @@ START_TEST(file) - test_query_volume_information_file(); +@@ -4557,4 +4650,5 @@ START_TEST(file) test_query_attribute_information_file(); + test_ioctl(); test_query_ea(); + test_junction_points(); } diff --git a/include/Makefile.in b/include/Makefile.in -index ac10691..03c3776 100644 +index 80fa362a160..c4bf4b21ad4 100644 --- a/include/Makefile.in +++ b/include/Makefile.in -@@ -508,6 +508,7 @@ HEADER_SRCS = \ +@@ -521,6 +521,7 @@ HEADER_SRCS = \ ntddstor.h \ ntdef.h \ ntdsapi.h \ @@ -269,7 +269,7 @@ index ac10691..03c3776 100644 ntsecpkg.h \ diff --git a/include/ntifs.h b/include/ntifs.h new file mode 100644 -index 0000000..db07c28 +index 00000000000..db07c28a5df --- /dev/null +++ b/include/ntifs.h @@ -0,0 +1,52 @@ @@ -326,5 +326,5 @@ index 0000000..db07c28 + +#endif /* __WINE_NTIFS_H */ -- -2.7.1 +2.11.0 diff --git a/patches/ntdll-NtQueryEaFile/0001-ntdll-Improve-stub-of-NtQueryEaFile.patch b/patches/ntdll-NtQueryEaFile/0001-ntdll-Improve-stub-of-NtQueryEaFile.patch index c6c08e9a..bb67a2fa 100644 --- a/patches/ntdll-NtQueryEaFile/0001-ntdll-Improve-stub-of-NtQueryEaFile.patch +++ b/patches/ntdll-NtQueryEaFile/0001-ntdll-Improve-stub-of-NtQueryEaFile.patch @@ -1,4 +1,4 @@ -From 44eb9473fbeb5ce2feb0626286c99e8944d5f297 Mon Sep 17 00:00:00 2001 +From edebe1491e64c5bbb8a148486233bdee9fbfcd59 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 6 Jun 2015 07:03:33 +0800 Subject: ntdll: Improve stub of NtQueryEaFile. @@ -44,10 +44,10 @@ index fc72833e1a4..210c8e385d9 100644 diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index 214c51a726a..5f9aab482f0 100644 +index 0c056ce4e28..c523bcfe0ab 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c -@@ -79,6 +79,7 @@ static NTSTATUS (WINAPI *pNtQueryDirectoryFile)(HANDLE,HANDLE,PIO_APC_ROUTINE,PV +@@ -80,6 +80,7 @@ static NTSTATUS (WINAPI *pNtQueryDirectoryFile)(HANDLE,HANDLE,PIO_APC_ROUTINE,PV PVOID,ULONG,FILE_INFORMATION_CLASS,BOOLEAN,PUNICODE_STRING,BOOLEAN); static NTSTATUS (WINAPI *pNtQueryVolumeInformationFile)(HANDLE,PIO_STATUS_BLOCK,PVOID,ULONG,FS_INFORMATION_CLASS); static NTSTATUS (WINAPI *pNtQueryFullAttributesFile)(const OBJECT_ATTRIBUTES*, FILE_NETWORK_OPEN_INFORMATION*); @@ -55,8 +55,8 @@ index 214c51a726a..5f9aab482f0 100644 static inline BOOL is_signaled( HANDLE obj ) { -@@ -4388,6 +4389,86 @@ static void test_read_write(void) - CloseHandle(hfile); +@@ -4413,6 +4414,86 @@ static void test_ioctl(void) + CloseHandle(file); } +static void test_query_ea(void) @@ -142,7 +142,7 @@ index 214c51a726a..5f9aab482f0 100644 START_TEST(file) { HMODULE hkernel32 = GetModuleHandleA("kernel32.dll"); -@@ -4424,6 +4505,7 @@ START_TEST(file) +@@ -4450,6 +4531,7 @@ START_TEST(file) pNtQueryDirectoryFile = (void *)GetProcAddress(hntdll, "NtQueryDirectoryFile"); pNtQueryVolumeInformationFile = (void *)GetProcAddress(hntdll, "NtQueryVolumeInformationFile"); pNtQueryFullAttributesFile = (void *)GetProcAddress(hntdll, "NtQueryFullAttributesFile"); @@ -150,10 +150,10 @@ index 214c51a726a..5f9aab482f0 100644 test_read_write(); test_NtCreateFile(); -@@ -4447,4 +4529,5 @@ START_TEST(file) - test_file_id_information(); +@@ -4474,4 +4556,5 @@ START_TEST(file) test_query_volume_information_file(); test_query_attribute_information_file(); + test_ioctl(); + test_query_ea(); } -- diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index bbed40d4..34dc0490 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "60c98caa94465799d0868b69149bce29cf767de4" + echo "3d62cd26d1b988b373efae0b9c4a0a988985d45f" } # Show version information @@ -415,7 +415,6 @@ patch_enable_all () enable_winedbg_Process_Arguments="$1" enable_winedevice_Fix_Relocation="$1" enable_winemenubuilder_Desktop_Icon_Path="$1" - enable_winemp3_acm_Fix_Compilation="$1" enable_winemp3_acm_MPEG3_StreamOpen="$1" enable_wineps_drv_PostScript_Fixes="$1" enable_winepulse_PulseAudio_Support="$1" @@ -1459,9 +1458,6 @@ patch_enable () winemenubuilder-Desktop_Icon_Path) enable_winemenubuilder_Desktop_Icon_Path="$2" ;; - winemp3.acm-Fix_Compilation) - enable_winemp3_acm_Fix_Compilation="$2" - ;; winemp3.acm-MPEG3_StreamOpen) enable_winemp3_acm_MPEG3_StreamOpen="$2" ;; @@ -8490,18 +8486,6 @@ if test "$enable_winemenubuilder_Desktop_Icon_Path" -eq 1; then ) >> "$patchlist" fi -# Patchset winemp3.acm-Fix_Compilation -# | -# | Modified files: -# | * dlls/winemp3.acm/mpegl3.c -# | -if test "$enable_winemp3_acm_Fix_Compilation" -eq 1; then - patch_apply winemp3.acm-Fix_Compilation/0001-winemp3.acm-Fixes-compilation-for-older-mpg123-libra.patch - ( - printf '%s\n' '+ { "Bruno Jesus", "winemp3.acm: Fixes compilation for older mpg123 library versions.", 2 },'; - ) >> "$patchlist" -fi - # Patchset winemp3.acm-MPEG3_StreamOpen # | # | Modified files: diff --git a/patches/server-Pipe_ObjectName/0001-server-Store-a-reference-to-the-parent-object-for-pi.patch b/patches/server-Pipe_ObjectName/0001-server-Store-a-reference-to-the-parent-object-for-pi.patch index 24e64940..ac051835 100644 --- a/patches/server-Pipe_ObjectName/0001-server-Store-a-reference-to-the-parent-object-for-pi.patch +++ b/patches/server-Pipe_ObjectName/0001-server-Store-a-reference-to-the-parent-object-for-pi.patch @@ -1,4 +1,4 @@ -From fdc6d717dcc6853d7439fa35961448b0c669e998 Mon Sep 17 00:00:00 2001 +From 6e987dbcbba1b00bfef41ecd962973648bfab823 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Mon, 17 Aug 2015 01:11:47 +0200 Subject: server: Store a reference to the parent object for pipe servers. (v2) @@ -11,10 +11,10 @@ Subject: server: Store a reference to the parent object for pipe servers. (v2) 4 files changed, 53 insertions(+), 19 deletions(-) diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c -index c05f31d..4a3c790 100644 +index 43c5ee46d71..9a1ba670ab7 100644 --- a/dlls/ntdll/tests/om.c +++ b/dlls/ntdll/tests/om.c -@@ -1489,14 +1489,11 @@ static void test_query_object(void) +@@ -1487,14 +1487,11 @@ static void test_query_object(void) status = pNtQueryObject( handle, ObjectNameInformation, buffer, sizeof(buffer), &len ); ok( status == STATUS_SUCCESS , "NtQueryObject returned %x\n", status ); str = (UNICODE_STRING *)buffer; @@ -30,10 +30,10 @@ index c05f31d..4a3c790 100644 "name too short %s\n", wine_dbgstr_w(str->Buffer) ); trace( "got %s len %u\n", wine_dbgstr_w(str->Buffer), len ); diff --git a/server/named_pipe.c b/server/named_pipe.c -index 546984ddf..c69f24b 100644 +index 748651f701a..255c88b135d 100644 --- a/server/named_pipe.c +++ b/server/named_pipe.c -@@ -148,6 +148,8 @@ static const struct object_ops named_pipe_ops = +@@ -147,6 +147,8 @@ static const struct object_ops named_pipe_ops = /* server end functions */ static void pipe_server_dump( struct object *obj, int verbose ); static struct fd *pipe_server_get_fd( struct object *obj ); @@ -41,7 +41,7 @@ index 546984ddf..c69f24b 100644 +static void pipe_server_unlink_name( struct object *obj, struct object_name *name ); static int pipe_server_close_handle( struct object *obj, struct process *process, obj_handle_t handle ); static void pipe_server_destroy( struct object *obj); - static obj_handle_t pipe_server_flush( struct fd *fd, const async_data_t *async, int blocking ); + static obj_handle_t pipe_server_flush( struct fd *fd, struct async *async, int blocking ); @@ -170,8 +172,8 @@ static const struct object_ops pipe_server_ops = default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ @@ -53,7 +53,7 @@ index 546984ddf..c69f24b 100644 no_open_file, /* open_file */ no_alloc_handle, /* alloc_handle */ pipe_server_close_handle, /* close_handle */ -@@ -196,6 +198,8 @@ static const struct fd_ops pipe_server_fd_ops = +@@ -195,6 +197,8 @@ static const struct fd_ops pipe_server_fd_ops = static void pipe_client_dump( struct object *obj, int verbose ); static int pipe_client_signaled( struct object *obj, struct wait_queue_entry *entry ); static struct fd *pipe_client_get_fd( struct object *obj ); @@ -61,7 +61,7 @@ index 546984ddf..c69f24b 100644 +static void pipe_client_unlink_name( struct object *obj, struct object_name *name ); static int pipe_client_close_handle( struct object *obj, struct process *process, obj_handle_t handle ); static void pipe_client_destroy( struct object *obj ); - static obj_handle_t pipe_client_flush( struct fd *fd, const async_data_t *async, int blocking ); + static obj_handle_t pipe_client_flush( struct fd *fd, struct async *async, int blocking ); @@ -216,8 +220,8 @@ static const struct object_ops pipe_client_ops = default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ @@ -73,7 +73,7 @@ index 546984ddf..c69f24b 100644 no_open_file, /* open_file */ no_alloc_handle, /* alloc_handle */ pipe_client_close_handle, /* close_handle */ -@@ -399,6 +403,17 @@ static void do_disconnect( struct pipe_server *server ) +@@ -396,6 +400,17 @@ static void do_disconnect( struct pipe_server *server ) server->fd = NULL; } @@ -91,7 +91,7 @@ index 546984ddf..c69f24b 100644 static int pipe_server_close_handle( struct object *obj, struct process *process, obj_handle_t handle ) { #ifdef __linux__ -@@ -442,6 +457,17 @@ static void pipe_server_destroy( struct object *obj) +@@ -439,6 +454,17 @@ static void pipe_server_destroy( struct object *obj) release_object( server->pipe ); } @@ -109,7 +109,7 @@ index 546984ddf..c69f24b 100644 static int pipe_client_close_handle( struct object *obj, struct process *process, obj_handle_t handle ) { #ifdef __linux__ -@@ -729,9 +755,10 @@ static struct pipe_server *get_pipe_server_obj( struct process *process, +@@ -746,9 +772,10 @@ static struct pipe_server *get_pipe_server_obj( struct process *process, static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned int options, unsigned int pipe_flags ) { @@ -121,7 +121,7 @@ index 546984ddf..c69f24b 100644 if (!server) return NULL; -@@ -753,11 +780,13 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned +@@ -771,11 +798,13 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned return server; } @@ -137,7 +137,7 @@ index 546984ddf..c69f24b 100644 if (!client) return NULL; -@@ -857,7 +886,7 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc +@@ -875,7 +904,7 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc return NULL; } @@ -147,7 +147,7 @@ index 546984ddf..c69f24b 100644 type = ((pipe->flags & NAMED_PIPE_MESSAGE_STREAM_WRITE) && is_messagemode_supported()) ? SOCK_SEQPACKET : SOCK_STREAM; diff --git a/server/object.c b/server/object.c -index f5d7d9f..0d06745 100644 +index f5d7d9f02fd..0d067458a56 100644 --- a/server/object.c +++ b/server/object.c @@ -162,7 +162,7 @@ WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len ) @@ -201,7 +201,7 @@ index f5d7d9f..0d06745 100644 /* dump the name of an object to stderr */ diff --git a/server/object.h b/server/object.h -index f82fb67..fb39482 100644 +index 72ad8528c5a..ddb4410525b 100644 --- a/server/object.h +++ b/server/object.h @@ -135,6 +135,8 @@ extern WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len ); @@ -214,5 +214,5 @@ index f82fb67..fb39482 100644 const struct unicode_str *name, unsigned int attributes, const struct security_descriptor *sd ); -- -2.7.1 +2.11.0 diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index bd46e966..41f16f50 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -84,7 +84,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader /* Load DirectX 9 float constants for pixel shader */ priv->highest_dirty_ps_const = shader_arb_load_constants_f(pshader, gl_info, GL_FRAGMENT_PROGRAM_ARB, -@@ -4610,7 +4614,11 @@ static void shader_arb_select(void *shader_priv, struct wined3d_context *context +@@ -4608,7 +4612,11 @@ static void shader_arb_select(void *shader_priv, struct wined3d_context *context } else { @@ -233,7 +233,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c DWORD *cur_mask; if (wined3d_settings.offscreen_rendering_mode == ORM_FBO) -@@ -3057,6 +3095,10 @@ void context_state_drawbuf(struct wined3d_context *context, const struct wined3d +@@ -3051,6 +3089,10 @@ void context_state_drawbuf(struct wined3d_context *context, const struct wined3d context_apply_draw_buffers(context, rt_mask); *cur_mask = rt_mask; } @@ -244,7 +244,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } static BOOL fixed_get_input(BYTE usage, BYTE usage_idx, unsigned int *regnum) -@@ -3501,7 +3543,11 @@ BOOL context_apply_draw_state(struct wined3d_context *context, +@@ -3495,7 +3537,11 @@ BOOL context_apply_draw_state(struct wined3d_context *context, const struct wined3d_device *device, const struct wined3d_state *state) { const struct StateEntry *state_table = context->state_table; @@ -256,7 +256,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c unsigned int i; WORD map; -@@ -3702,6 +3748,11 @@ struct wined3d_context *context_acquire(const struct wined3d_device *device, +@@ -3696,6 +3742,11 @@ struct wined3d_context *context_acquire(const struct wined3d_device *device, TRACE("device %p, texture %p, sub_resource_idx %u.\n", device, texture, sub_resource_idx); @@ -4108,7 +4108,7 @@ diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c -@@ -1630,7 +1630,11 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context +@@ -1621,7 +1621,11 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context const struct wined3d_vec4 correction_params = { /* Position is relative to the framebuffer, not the viewport. */ @@ -4224,7 +4224,7 @@ diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c -@@ -3267,7 +3267,11 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3 +@@ -3271,7 +3271,11 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3 UINT i; memset(args, 0, sizeof(*args)); /* FIXME: Make sure all bits are set. */ @@ -5669,7 +5669,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN; -@@ -1500,6 +1503,10 @@ struct wined3d_query +@@ -1501,6 +1504,10 @@ struct wined3d_query const void *data; DWORD data_size; const struct wined3d_query_ops *query_ops; @@ -5680,7 +5680,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; union wined3d_gl_query_object -@@ -1541,6 +1548,9 @@ struct wined3d_occlusion_query +@@ -1542,6 +1549,9 @@ struct wined3d_occlusion_query GLuint id; struct wined3d_context *context; UINT64 samples; @@ -5690,7 +5690,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_timestamp_query -@@ -1556,6 +1566,38 @@ struct wined3d_timestamp_query +@@ -1557,6 +1567,38 @@ struct wined3d_timestamp_query void context_alloc_timestamp_query(struct wined3d_context *context, struct wined3d_timestamp_query *query) DECLSPEC_HIDDEN; void context_free_timestamp_query(struct wined3d_timestamp_query *query) DECLSPEC_HIDDEN; @@ -5729,7 +5729,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_context { const struct wined3d_gl_info *gl_info; -@@ -1571,6 +1613,9 @@ struct wined3d_context +@@ -1572,6 +1614,9 @@ struct wined3d_context DWORD numDirtyEntries; DWORD isStateDirty[STATE_HIGHEST / (sizeof(DWORD) * CHAR_BIT) + 1]; /* Bitmap to find out quickly if a state is dirty */ unsigned int dirty_compute_states[STATE_COMPUTE_COUNT / (sizeof(unsigned int) * CHAR_BIT) + 1]; @@ -5739,7 +5739,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_device *device; struct wined3d_swapchain *swapchain; -@@ -1684,12 +1729,14 @@ struct wined3d_context +@@ -1685,12 +1730,14 @@ struct wined3d_context GLuint dummy_arbfp_prog; }; @@ -5754,7 +5754,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id); struct StateEntry -@@ -1828,7 +1875,11 @@ void context_alloc_event_query(struct wined3d_context *context, +@@ -1829,7 +1876,11 @@ void context_alloc_event_query(struct wined3d_context *context, void context_alloc_occlusion_query(struct wined3d_context *context, struct wined3d_occlusion_query *query) DECLSPEC_HIDDEN; void context_apply_blit_state(struct wined3d_context *context, const struct wined3d_device *device) DECLSPEC_HIDDEN; @@ -5766,7 +5766,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT rt_count, const struct wined3d_fb_state *fb) DECLSPEC_HIDDEN; void context_apply_compute_state(struct wined3d_context *context, const struct wined3d_device *device, const struct wined3d_state *state) DECLSPEC_HIDDEN; -@@ -2514,7 +2565,11 @@ struct wined3d_stream_state +@@ -2515,7 +2566,11 @@ struct wined3d_stream_state struct wined3d_state { DWORD flags; @@ -5778,7 +5778,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_vertex_declaration *vertex_declaration; struct wined3d_stream_output stream_output[MAX_STREAM_OUT]; -@@ -2562,6 +2617,16 @@ struct wined3d_state +@@ -2563,6 +2618,16 @@ struct wined3d_state struct wined3d_rasterizer_state *rasterizer_state; }; @@ -5795,7 +5795,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h #define WINED3D_UNMAPPED_STAGE ~0U /* Multithreaded flag. Removed from the public header to signal that -@@ -2620,7 +2685,9 @@ struct wined3d_device +@@ -2621,7 +2686,9 @@ struct wined3d_device struct wine_rb_tree samplers; /* Render Target Support */ @@ -5805,7 +5805,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_rendertarget_view *auto_depth_stencil_view; /* Cursor management */ -@@ -2673,6 +2740,14 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL +@@ -2674,6 +2741,14 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN; void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN; void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN; @@ -5820,7 +5820,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state) { -@@ -2748,11 +2823,13 @@ static inline void wined3d_resource_release(struct wined3d_resource *resource) +@@ -2749,11 +2824,13 @@ static inline void wined3d_resource_release(struct wined3d_resource *resource) InterlockedDecrement(&resource->access_count); } @@ -5834,7 +5834,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void resource_cleanup(struct wined3d_resource *resource) DECLSPEC_HIDDEN; HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *device, enum wined3d_resource_type type, const struct wined3d_format *format, -@@ -2863,7 +2940,11 @@ struct wined3d_texture +@@ -2864,7 +2941,11 @@ struct wined3d_texture unsigned int map_count; DWORD locations; @@ -5846,7 +5846,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h } sub_resources[1]; }; -@@ -2916,9 +2997,16 @@ void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture, +@@ -2917,9 +2998,16 @@ void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN; BOOL wined3d_texture_check_block_align(const struct wined3d_texture *texture, unsigned int level, const struct wined3d_box *box) DECLSPEC_HIDDEN; @@ -5863,7 +5863,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_texture_invalidate_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, DWORD location) DECLSPEC_HIDDEN; void wined3d_texture_load(struct wined3d_texture *texture, -@@ -2931,6 +3019,10 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned +@@ -2932,6 +3020,10 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN; void wined3d_texture_prepare_texture(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN; @@ -5874,7 +5874,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_texture_set_map_binding(struct wined3d_texture *texture, DWORD map_binding) DECLSPEC_HIDDEN; void wined3d_texture_set_swapchain(struct wined3d_texture *texture, struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; -@@ -3038,6 +3130,11 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P +@@ -3039,6 +3131,11 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info, const struct wined3d_format *format, const RECT *src_rect, UINT src_pitch, const POINT *dst_point, BOOL srgb, const struct wined3d_const_bo_address *data) DECLSPEC_HIDDEN; @@ -5886,7 +5886,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context, const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN; -@@ -3151,9 +3248,14 @@ void wined3d_state_enable_light(struct wined3d_state *state, const struct wined3 +@@ -3152,9 +3249,14 @@ void wined3d_state_enable_light(struct wined3d_state *state, const struct wined3 struct wined3d_light_info *light_info, BOOL enable) DECLSPEC_HIDDEN; struct wined3d_light_info *wined3d_state_get_light(const struct wined3d_state *state, unsigned int idx) DECLSPEC_HIDDEN; @@ -5901,7 +5901,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN; enum wined3d_push_constants -@@ -3166,6 +3268,7 @@ enum wined3d_push_constants +@@ -3167,6 +3269,7 @@ enum wined3d_push_constants WINED3D_PUSH_CONSTANTS_PS_B, }; @@ -5909,7 +5909,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_cs_ops { void *(*require_space)(struct wined3d_cs *cs, size_t size); -@@ -3173,32 +3276,114 @@ struct wined3d_cs_ops +@@ -3174,32 +3277,114 @@ struct wined3d_cs_ops void (*push_constants)(struct wined3d_cs *cs, enum wined3d_push_constants p, unsigned int start_idx, unsigned int count, const void *constants); }; @@ -6024,7 +6024,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_reset_state(struct wined3d_cs *cs) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx, const struct wined3d_vec4 *plane) DECLSPEC_HIDDEN; -@@ -3215,6 +3400,10 @@ void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, unsigned int idx, B +@@ -3216,6 +3401,10 @@ void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, unsigned int idx, B void wined3d_cs_emit_set_material(struct wined3d_cs *cs, const struct wined3d_material *material) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_predication(struct wined3d_cs *cs, struct wined3d_query *predicate, BOOL value) DECLSPEC_HIDDEN; @@ -6035,7 +6035,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_set_rasterizer_state(struct wined3d_cs *cs, struct wined3d_rasterizer_state *rasterizer_state) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs, -@@ -3246,19 +3435,37 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined +@@ -3247,19 +3436,37 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN; @@ -6073,7 +6073,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other * fixed function semantics as D3DCOLOR or FLOAT16 */ -@@ -3396,7 +3603,12 @@ void wined3d_unordered_access_view_invalidate_location(struct wined3d_unordered_ +@@ -3397,7 +3604,12 @@ void wined3d_unordered_access_view_invalidate_location(struct wined3d_unordered_ struct wined3d_swapchain_ops { void (*swapchain_present)(struct wined3d_swapchain *swapchain, @@ -6086,7 +6086,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void (*swapchain_frontbuffer_updated)(struct wined3d_swapchain *swapchain); }; -@@ -3433,6 +3645,10 @@ struct wined3d_swapchain +@@ -3434,6 +3646,10 @@ struct wined3d_swapchain void wined3d_swapchain_activate(struct wined3d_swapchain *swapchain, BOOL activate) DECLSPEC_HIDDEN; struct wined3d_context *swapchain_get_context(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; diff --git a/patches/wined3d-check_format_support/0001-wined3d-Add-wined3d_check_device_format_support.patch b/patches/wined3d-check_format_support/0001-wined3d-Add-wined3d_check_device_format_support.patch index d3c0a008..729df138 100644 --- a/patches/wined3d-check_format_support/0001-wined3d-Add-wined3d_check_device_format_support.patch +++ b/patches/wined3d-check_format_support/0001-wined3d-Add-wined3d_check_device_format_support.patch @@ -1,4 +1,4 @@ -From 0864f18c99567a16025d2cda9b70e23db43b2ed0 Mon Sep 17 00:00:00 2001 +From 77435a91bb511b8d6eec9f5ca503ce6049395673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sun, 28 Aug 2016 04:07:01 +0200 Subject: wined3d: Add wined3d_check_device_format_support. @@ -10,10 +10,10 @@ Subject: wined3d: Add wined3d_check_device_format_support. 3 files changed, 110 insertions(+) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index a8de282..83fa003 100644 +index 2005341960c..b0ed1ea6b4a 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -3343,6 +3343,82 @@ struct wined3d_texture * CDECL wined3d_device_get_texture(const struct wined3d_d +@@ -3243,6 +3243,82 @@ struct wined3d_texture * CDECL wined3d_device_get_texture(const struct wined3d_d return device->state.textures[stage]; } @@ -97,7 +97,7 @@ index a8de282..83fa003 100644 { TRACE("device %p, caps %p.\n", device, caps); diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec -index 34b2d0a..efd7501 100644 +index af3878ea9d0..f3c826e4f04 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -5,6 +5,7 @@ @@ -109,11 +109,11 @@ index 34b2d0a..efd7501 100644 @ cdecl wined3d_check_device_type(ptr long long long long long) @ cdecl wined3d_create(long) diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h -index 7271ec0..c5ccee1 100644 +index b511955388e..308b5fb07ec 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h -@@ -796,6 +796,37 @@ enum wined3d_display_rotation - WINED3D_DISPLAY_ROTATION_270 = 4, +@@ -806,6 +806,37 @@ enum wined3d_shader_byte_code_format + WINED3D_SHADER_BYTE_CODE_FORMAT_SM4 = 1, }; +enum wined3d_format_support @@ -150,7 +150,7 @@ index 7271ec0..c5ccee1 100644 #define WINED3DCOLORWRITEENABLE_RED (1u << 0) #define WINED3DCOLORWRITEENABLE_GREEN (1u << 1) #define WINED3DCOLORWRITEENABLE_BLUE (1u << 2) -@@ -2066,6 +2097,8 @@ HRESULT __cdecl wined3d_check_device_format(const struct wined3d *wined3d, UINT +@@ -2081,6 +2112,8 @@ HRESULT __cdecl wined3d_check_device_format(const struct wined3d *wined3d, UINT HRESULT __cdecl wined3d_check_device_format_conversion(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, enum wined3d_format_id source_format_id, enum wined3d_format_id target_format_id); @@ -160,5 +160,5 @@ index 7271ec0..c5ccee1 100644 enum wined3d_device_type device_type, enum wined3d_format_id surface_format_id, BOOL windowed, enum wined3d_multisample_type multisample_type, DWORD *quality_levels); -- -2.9.0 +2.11.0 diff --git a/patches/winemp3.acm-Fix_Compilation/0001-winemp3.acm-Fixes-compilation-for-older-mpg123-libra.patch b/patches/winemp3.acm-Fix_Compilation/0001-winemp3.acm-Fixes-compilation-for-older-mpg123-libra.patch deleted file mode 100644 index 8caf1030..00000000 --- a/patches/winemp3.acm-Fix_Compilation/0001-winemp3.acm-Fixes-compilation-for-older-mpg123-libra.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c112987a861f6d9bbb4813a95ed02667f0653462 Mon Sep 17 00:00:00 2001 -From: Bruno Jesus <00cpxxx@gmail.com> -Date: Sun, 19 Feb 2017 22:16:18 -0300 -Subject: winemp3.acm: Fixes compilation for older mpg123 library versions (try - 2) - -Thanks to Sebastian Lackner for the correct approach. - -Signed-off-by: Bruno Jesus <00cpxxx@gmail.com> ---- - dlls/winemp3.acm/mpegl3.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/dlls/winemp3.acm/mpegl3.c b/dlls/winemp3.acm/mpegl3.c -index 4a9f8949b1b..4da7541fdee 100644 ---- a/dlls/winemp3.acm/mpegl3.c -+++ b/dlls/winemp3.acm/mpegl3.c -@@ -262,12 +262,14 @@ static LRESULT MPEG3_StreamOpen(PACMDRVSTREAMINSTANCE adsi) - aad->mh = mpg123_new(NULL,&err); - mpg123_open_feed(aad->mh); - -+#if MPG123_API_VERSION >= 31 /* needed for MPG123_IGNORE_FRAMEINFO enum value */ - /* mpg123 may find a XING header in the mp3 and use that information - * to ask for seeks in order to read specific frames in the file. - * We cannot allow that since the caller application is feeding us. - * This fixes problems for mp3 files encoded with LAME (bug 42361) - */ - mpg123_param(aad->mh, MPG123_ADD_FLAGS, MPG123_IGNORE_INFOFRAME, 0); -+#endif - } - /* no encoding yet - else if (adsi->pwfxSrc->wFormatTag == WAVE_FORMAT_PCM && --- -2.11.0 - diff --git a/patches/ws2_32-TransmitFile/0002-ws2_32-Add-support-for-TF_REUSE_SOCKET-to-TransmitFi.patch b/patches/ws2_32-TransmitFile/0002-ws2_32-Add-support-for-TF_REUSE_SOCKET-to-TransmitFi.patch index 5846a1bd..82d39f82 100644 --- a/patches/ws2_32-TransmitFile/0002-ws2_32-Add-support-for-TF_REUSE_SOCKET-to-TransmitFi.patch +++ b/patches/ws2_32-TransmitFile/0002-ws2_32-Add-support-for-TF_REUSE_SOCKET-to-TransmitFi.patch @@ -1,4 +1,4 @@ -From 2429b08d8ff3f6fbb53fbd7acde61e2f28f60e5c Mon Sep 17 00:00:00 2001 +From 3e03add0569ba08db7fae8b167070b0036d52d40 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Thu, 16 Jan 2014 19:08:30 -0700 Subject: ws2_32: Add support for TF_REUSE_SOCKET to TransmitFile. @@ -12,10 +12,10 @@ Subject: ws2_32: Add support for TF_REUSE_SOCKET to TransmitFile. 5 files changed, 75 insertions(+), 11 deletions(-) diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c -index e121049..8e5e5aa 100644 +index 43eafebe78e..64d9ac08175 100644 --- a/dlls/ws2_32/socket.c +++ b/dlls/ws2_32/socket.c -@@ -3035,6 +3035,17 @@ static NTSTATUS WS2_transmitfile_base( int fd, struct ws2_transmitfile_async *ws +@@ -3034,6 +3034,17 @@ static NTSTATUS WS2_transmitfile_base( int fd, struct ws2_transmitfile_async *ws if (status != STATUS_SUCCESS) return status; @@ -33,7 +33,7 @@ index e121049..8e5e5aa 100644 if (wsa->flags & TF_DISCONNECT) { /* we can't use WS_closesocket because it modifies the last error */ -@@ -3078,7 +3089,7 @@ static BOOL WINAPI WS2_TransmitFile( SOCKET s, HANDLE h, DWORD file_bytes, DWORD +@@ -3077,7 +3088,7 @@ static BOOL WINAPI WS2_TransmitFile( SOCKET s, HANDLE h, DWORD file_bytes, DWORD LPOVERLAPPED overlapped, LPTRANSMIT_FILE_BUFFERS buffers, DWORD flags ) { @@ -43,10 +43,10 @@ index e121049..8e5e5aa 100644 unsigned int uaddrlen = sizeof(uaddr); struct ws2_transmitfile_async *wsa; diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c -index f7d9c94..036fda1 100644 +index 82835036814..2aa9a1b4c22 100644 --- a/dlls/ws2_32/tests/sock.c +++ b/dlls/ws2_32/tests/sock.c -@@ -8368,7 +8368,6 @@ static void test_TransmitFile(void) +@@ -8488,7 +8488,6 @@ static void test_TransmitFile(void) err, WSAENOTSOCK); /* Test TransmitFile with a UDP datagram socket */ @@ -55,7 +55,7 @@ index f7d9c94..036fda1 100644 bret = pTransmitFile(client, NULL, 0, 0, NULL, NULL, 0); err = WSAGetLastError(); diff --git a/include/winsock.h b/include/winsock.h -index cf9adf5..2feb224 100644 +index cf9adf57ebd..2feb22466e4 100644 --- a/include/winsock.h +++ b/include/winsock.h @@ -816,6 +816,7 @@ typedef struct WS(WSAData) @@ -67,7 +67,7 @@ index cf9adf5..2feb224 100644 #define FD_WINE_NONBLOCKING 0x20000000 #define FD_WINE_CONNECTED 0x40000000 diff --git a/server/protocol.def b/server/protocol.def -index 60865a6..2bbad80 100644 +index 60865a6ffc2..2bbad809edb 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -1303,6 +1303,12 @@ enum server_fd_type @@ -84,7 +84,7 @@ index 60865a6..2bbad80 100644 @REQ(set_socket_event) obj_handle_t handle; /* handle to the socket */ diff --git a/server/sock.c b/server/sock.c -index 153f901..13a41c4 100644 +index d6b4fb2fa5c..2e310eec516 100644 --- a/server/sock.c +++ b/server/sock.c @@ -86,6 +86,7 @@ @@ -96,8 +96,8 @@ index 153f901..13a41c4 100644 #define FD_WINE_NONBLOCKING 0x20000000 #define FD_WINE_CONNECTED 0x40000000 @@ -132,6 +133,7 @@ static enum server_fd_type sock_get_fd_type( struct fd *fd ); - static obj_handle_t sock_ioctl( struct fd *fd, ioctl_code_t code, const async_data_t *async, int blocking ); - static void sock_queue_async( struct fd *fd, const async_data_t *data, int type, int count ); + static obj_handle_t sock_ioctl( struct fd *fd, ioctl_code_t code, struct async *async, int blocking ); + static void sock_queue_async( struct fd *fd, struct async *async, int type, int count ); static void sock_reselect_async( struct fd *fd, struct async_queue *queue ); +static int sock_close_handle( struct object *obj, struct process *process, obj_handle_t handle ); @@ -112,7 +112,7 @@ index 153f901..13a41c4 100644 sock_destroy /* destroy */ }; -@@ -616,6 +618,47 @@ static struct fd *sock_get_fd( struct object *obj ) +@@ -611,6 +613,47 @@ static struct fd *sock_get_fd( struct object *obj ) return (struct fd *)grab_object( sock->fd ); } @@ -160,7 +160,7 @@ index 153f901..13a41c4 100644 static void sock_destroy( struct object *obj ) { struct sock *sock = (struct sock *)obj; -@@ -668,15 +711,8 @@ static struct object *create_socket( int family, int type, int protocol, unsigne +@@ -663,15 +706,8 @@ static struct object *create_socket( int family, int type, int protocol, unsigne struct sock *sock; int sockfd; @@ -177,7 +177,7 @@ index 153f901..13a41c4 100644 if (!(sock = alloc_object( &sock_ops ))) { close( sockfd ); -@@ -1245,6 +1281,17 @@ DECL_HANDLER(accept_into_socket) +@@ -1240,6 +1276,17 @@ DECL_HANDLER(accept_into_socket) release_object( sock ); } @@ -196,5 +196,5 @@ index 153f901..13a41c4 100644 DECL_HANDLER(set_socket_event) { -- -2.9.0 +2.11.0