From 9c995c8d8e91dd75df52982f6b95eea09dcf5de1 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 10 May 2023 09:47:24 +1000 Subject: [PATCH] Rebase against de034b36b7fbad0edae0a2700376273c74e48ac6. --- ...port-streams-backwards-in-media-sour.patch | 25 +++------ patches/mfplat-streaming-support/definition | 1 + ...out-some-view-manipulation-functions.patch | 14 ++--- ...M_RESERVE_PLACEHOLDER-in-NtAllocateV.patch | 30 ++++++----- ...M_REPLACE_PLACEHOLDER-in-NtAllocateV.patch | 22 ++++---- ...ests-Add-more-tests-for-placeholders.patch | 54 ++++++++----------- .../wineps.drv-PostScript_Fixes/definition | 1 + staging/upstream-commit | 2 +- 8 files changed, 67 insertions(+), 82 deletions(-) diff --git a/patches/mfplat-streaming-support/0025-winegstreamer-Report-streams-backwards-in-media-sour.patch b/patches/mfplat-streaming-support/0025-winegstreamer-Report-streams-backwards-in-media-sour.patch index 6940bc26..80216256 100644 --- a/patches/mfplat-streaming-support/0025-winegstreamer-Report-streams-backwards-in-media-sour.patch +++ b/patches/mfplat-streaming-support/0025-winegstreamer-Report-streams-backwards-in-media-sour.patch @@ -1,35 +1,26 @@ -From ca64589b2447f378651f19eb15672f27c2133493 Mon Sep 17 00:00:00 2001 +From 7d0af0dc23f87241726af6f7c48f47df441503a6 Mon Sep 17 00:00:00 2001 From: Derek Lesho Date: Fri, 19 Mar 2021 17:01:54 -0400 Subject: [PATCH] winegstreamer: Report streams backwards in media source. Signed-off-by: Derek Lesho --- - dlls/winegstreamer/media_source.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + dlls/winegstreamer/media_source.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c -index 1b57d8bfba8..4d2a29a6bc1 100644 +index 335b617becd..e6117fd0090 100644 --- a/dlls/winegstreamer/media_source.c +++ b/dlls/winegstreamer/media_source.c -@@ -1497,7 +1497,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_ - DWORD len; - char *str; - -- IMFMediaStream_GetStreamDescriptor(&object->streams[i]->IMFMediaStream_iface, &descriptors[i]); -+ IMFMediaStream_GetStreamDescriptor(&object->streams[i]->IMFMediaStream_iface, &descriptors[object->stream_count - 1 - i]); - - for (j = 0; j < ARRAY_SIZE(tags); ++j) - { -@@ -1510,7 +1510,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_ +@@ -1604,7 +1604,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_ } strW = malloc(len * sizeof(*strW)); if (MultiByteToWideChar(CP_UTF8, 0, str, -1, strW, len)) -- IMFStreamDescriptor_SetString(descriptors[i], tags[j].mf_attr, strW); -+ IMFStreamDescriptor_SetString(descriptors[object->stream_count - 1 - i], tags[j].mf_attr, strW); +- IMFStreamDescriptor_SetString(object->descriptors[i], tags[j].mf_attr, strW); ++ IMFStreamDescriptor_SetString(object->descriptors[object->stream_count - 1 - i], tags[j].mf_attr, strW); free(strW); free(str); } -- -2.40.0 +2.40.1 diff --git a/patches/mfplat-streaming-support/definition b/patches/mfplat-streaming-support/definition index 00ba0f55..e91efdc2 100644 --- a/patches/mfplat-streaming-support/definition +++ b/patches/mfplat-streaming-support/definition @@ -1 +1,2 @@ Fixes: [49692] Multiple applications need a Media Foundation media source implementation +Disabled: True diff --git a/patches/ntdll-Placeholders/0005-ntdll-Factor-out-some-view-manipulation-functions.patch b/patches/ntdll-Placeholders/0005-ntdll-Factor-out-some-view-manipulation-functions.patch index e161f688..908b3e54 100644 --- a/patches/ntdll-Placeholders/0005-ntdll-Factor-out-some-view-manipulation-functions.patch +++ b/patches/ntdll-Placeholders/0005-ntdll-Factor-out-some-view-manipulation-functions.patch @@ -1,4 +1,4 @@ -From 4baf5566da8495ef3b260783ed88f175e43b4f70 Mon Sep 17 00:00:00 2001 +From e1f80e94e43d910a3d2b3bc5708a78507b11f4f5 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Fri, 11 Nov 2022 18:37:43 -0600 Subject: [PATCH] ntdll: Factor out some view manipulation functions. @@ -8,10 +8,10 @@ Subject: [PATCH] ntdll: Factor out some view manipulation functions. 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c -index 2dca5dfa45f..bdc410472ec 100644 +index cacde37e2e4..2dc66624ffc 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c -@@ -1563,6 +1563,31 @@ static struct file_view *alloc_view(void) +@@ -1593,6 +1593,31 @@ static struct file_view *alloc_view(void) } @@ -43,10 +43,10 @@ index 2dca5dfa45f..bdc410472ec 100644 /*********************************************************************** * delete_view * -@@ -1572,11 +1597,21 @@ static void delete_view( struct file_view *view ) /* [in] View */ - { +@@ -1603,11 +1628,21 @@ static void delete_view( struct file_view *view ) /* [in] View */ if (!(view->protect & VPROT_SYSTEM)) unmap_area( view->base, view->size ); set_page_vprot( view->base, view->size, 0 ); + if (arm64ec_map) clear_arm64ec_range( view->base, view->size ); + unregister_view( view ); + free_view( view ); +} @@ -69,7 +69,7 @@ index 2dca5dfa45f..bdc410472ec 100644 } -@@ -1620,9 +1655,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz +@@ -1651,9 +1686,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz view->protect = vprot; set_page_vprot( base, size, vprot ); @@ -81,5 +81,5 @@ index 2dca5dfa45f..bdc410472ec 100644 *view_ret = view; -- -2.38.1 +2.40.1 diff --git a/patches/ntdll-Placeholders/0011-ntdll-Support-MEM_RESERVE_PLACEHOLDER-in-NtAllocateV.patch b/patches/ntdll-Placeholders/0011-ntdll-Support-MEM_RESERVE_PLACEHOLDER-in-NtAllocateV.patch index c59d985d..cac70e60 100644 --- a/patches/ntdll-Placeholders/0011-ntdll-Support-MEM_RESERVE_PLACEHOLDER-in-NtAllocateV.patch +++ b/patches/ntdll-Placeholders/0011-ntdll-Support-MEM_RESERVE_PLACEHOLDER-in-NtAllocateV.patch @@ -1,4 +1,4 @@ -From 6fbb8f079b1024d742f2cc34425e6099e23f2f39 Mon Sep 17 00:00:00 2001 +From dda1364400c5fea03e6d34c035f1d7b34649158e Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Thu, 10 Nov 2022 18:53:10 -0600 Subject: [PATCH] ntdll: Support MEM_RESERVE_PLACEHOLDER in @@ -10,10 +10,10 @@ Based on a patch by Nikolay Sivov. 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c -index f078e114b4c..6204ed5a452 100644 +index c8e0f15eef4..dd146126361 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c -@@ -3891,13 +3891,18 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ +@@ -4072,8 +4072,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ /* Compute the alloc type flags */ @@ -23,7 +23,9 @@ index f078e114b4c..6204ed5a452 100644 { WARN("called with wrong alloc type flags (%08x) !\n", (int)type); return STATUS_INVALID_PARAMETER; - } +@@ -4081,6 +4080,12 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ + + if (!arm64ec_map && (attributes & MEM_EXTENDED_PARAMETER_EC_CODE)) return STATUS_INVALID_PARAMETER; + if (type & MEM_RESERVE_PLACEHOLDER && (protect != PAGE_NOACCESS)) + { @@ -34,7 +36,7 @@ index f078e114b4c..6204ed5a452 100644 /* Reserve the memory */ server_enter_uninterrupted_section( &virtual_mutex, &sigset ); -@@ -3908,6 +3913,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ +@@ -4091,6 +4096,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ { if (type & MEM_COMMIT) vprot |= VPROT_COMMITTED; if (type & MEM_WRITE_WATCH) vprot |= VPROT_WRITEWATCH; @@ -42,7 +44,7 @@ index f078e114b4c..6204ed5a452 100644 if (protect & PAGE_NOCACHE) vprot |= SEC_NOCACHE; if (vprot & VPROT_WRITECOPY) status = STATUS_INVALID_PAGE_PROTECTION; -@@ -3927,6 +3933,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ +@@ -4110,6 +4116,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ { if (!(view = find_view( base, size ))) status = STATUS_NOT_MAPPED_VIEW; else if (view->protect & SEC_FILE) status = STATUS_ALREADY_COMMITTED; @@ -50,7 +52,7 @@ index f078e114b4c..6204ed5a452 100644 else if (!(status = set_protection( view, base, size, protect )) && (view->protect & SEC_RESERVE)) { SERVER_START_REQ( add_mapping_committed_range ) -@@ -3960,6 +3967,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ +@@ -4145,6 +4152,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ NTSTATUS WINAPI NtAllocateVirtualMemory( HANDLE process, PVOID *ret, ULONG_PTR zero_bits, SIZE_T *size_ptr, ULONG type, ULONG protect ) { @@ -58,7 +60,7 @@ index f078e114b4c..6204ed5a452 100644 ULONG_PTR limit; TRACE("%p %p %08lx %x %08x\n", process, *ret, *size_ptr, (int)type, (int)protect ); -@@ -3971,6 +3979,12 @@ NTSTATUS WINAPI NtAllocateVirtualMemory( HANDLE process, PVOID *ret, ULONG_PTR z +@@ -4156,6 +4164,12 @@ NTSTATUS WINAPI NtAllocateVirtualMemory( HANDLE process, PVOID *ret, ULONG_PTR z if (!is_old_wow64() && zero_bits >= 32) return STATUS_INVALID_PARAMETER_3; #endif @@ -71,7 +73,7 @@ index f078e114b4c..6204ed5a452 100644 if (process != NtCurrentProcess()) { apc_call_t call; -@@ -4013,6 +4027,8 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s +@@ -4198,6 +4212,8 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s ULONG protect, MEM_EXTENDED_PARAMETER *parameters, ULONG count ) { @@ -79,8 +81,8 @@ index f078e114b4c..6204ed5a452 100644 + | MEM_RESET | MEM_RESERVE_PLACEHOLDER; ULONG_PTR limit = 0; ULONG_PTR align = 0; - -@@ -4021,6 +4037,12 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s + ULONG attributes = 0; +@@ -4209,6 +4225,12 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s if (count && !parameters) return STATUS_INVALID_PARAMETER; @@ -90,9 +92,9 @@ index f078e114b4c..6204ed5a452 100644 + return STATUS_INVALID_PARAMETER; + } + - if (count) + for (i = 0; i < count; ++i) { - MEM_ADDRESS_REQUIREMENTS *r = NULL; + switch (parameters[i].Type) -- -2.40.0 +2.40.1 diff --git a/patches/ntdll-Placeholders/0012-ntdll-Support-MEM_REPLACE_PLACEHOLDER-in-NtAllocateV.patch b/patches/ntdll-Placeholders/0012-ntdll-Support-MEM_REPLACE_PLACEHOLDER-in-NtAllocateV.patch index c42aa568..160e1eeb 100644 --- a/patches/ntdll-Placeholders/0012-ntdll-Support-MEM_REPLACE_PLACEHOLDER-in-NtAllocateV.patch +++ b/patches/ntdll-Placeholders/0012-ntdll-Support-MEM_REPLACE_PLACEHOLDER-in-NtAllocateV.patch @@ -1,4 +1,4 @@ -From 15d43de746bf26b783e4b357fbc23dfa7247c78a Mon Sep 17 00:00:00 2001 +From 34562a9ed59356de31669c76bdf87886ee9febe4 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Thu, 10 Nov 2022 18:58:26 -0600 Subject: [PATCH] ntdll: Support MEM_REPLACE_PLACEHOLDER in @@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Support MEM_REPLACE_PLACEHOLDER in 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c -index 5bea8ba8322..4d8dd54554c 100644 +index dd146126361..0f2818f563d 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c -@@ -125,6 +125,7 @@ struct file_view +@@ -126,6 +126,7 @@ struct file_view /* per-mapping protection flags */ #define VPROT_SYSTEM 0x0200 /* system view (underlying mmap not under our control) */ #define VPROT_PLACEHOLDER 0x0400 @@ -20,7 +20,7 @@ index 5bea8ba8322..4d8dd54554c 100644 /* Conversion from VPROT_* to Win32 flags */ static const BYTE VIRTUAL_Win32Flags[16] = -@@ -2011,6 +2012,31 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, +@@ -2044,6 +2045,31 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size, void *ptr; NTSTATUS status; @@ -52,7 +52,7 @@ index 5bea8ba8322..4d8dd54554c 100644 if (base) { if (is_beyond_limit( base, size, address_space_limit )) -@@ -3894,7 +3920,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ +@@ -4048,7 +4074,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ if (*ret) { @@ -61,7 +61,7 @@ index 5bea8ba8322..4d8dd54554c 100644 base = ROUND_ADDR( *ret, granularity_mask ); else base = ROUND_ADDR( *ret, page_mask ); -@@ -3918,7 +3944,8 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ +@@ -4072,7 +4098,8 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ /* Compute the alloc type flags */ @@ -71,7 +71,7 @@ index 5bea8ba8322..4d8dd54554c 100644 { WARN("called with wrong alloc type flags (%08x) !\n", (int)type); return STATUS_INVALID_PARAMETER; -@@ -3945,7 +3972,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ +@@ -4101,7 +4128,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ if (vprot & VPROT_WRITECOPY) status = STATUS_INVALID_PAGE_PROTECTION; else if (is_dos_memory) status = allocate_dos_memory( &view, vprot ); @@ -80,7 +80,7 @@ index 5bea8ba8322..4d8dd54554c 100644 align ? align - 1 : granularity_mask ); if (status == STATUS_SUCCESS) base = view->base; -@@ -4055,7 +4082,7 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s +@@ -4213,7 +4240,7 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s ULONG count ) { static const ULONG type_mask = MEM_COMMIT | MEM_RESERVE | MEM_TOP_DOWN | MEM_WRITE_WATCH @@ -88,8 +88,8 @@ index 5bea8ba8322..4d8dd54554c 100644 + | MEM_RESET | MEM_RESERVE_PLACEHOLDER | MEM_REPLACE_PLACEHOLDER; ULONG_PTR limit = 0; ULONG_PTR align = 0; - -@@ -4209,6 +4236,12 @@ NTSTATUS WINAPI NtFreeVirtualMemory( HANDLE process, PVOID *addr_ptr, SIZE_T *si + ULONG attributes = 0; +@@ -4371,6 +4398,12 @@ NTSTATUS WINAPI NtFreeVirtualMemory( HANDLE process, PVOID *addr_ptr, SIZE_T *si if (size && (char *)view->base + view->size - base < size) status = STATUS_UNABLE_TO_FREE_VM; else if (!size && base != view->base) status = STATUS_FREE_VM_NOT_AT_BASE; @@ -103,5 +103,5 @@ index 5bea8ba8322..4d8dd54554c 100644 { if (!size) size = view->size; -- -2.38.1 +2.40.1 diff --git a/patches/ntdll-Placeholders/0014-ntdll-tests-Add-more-tests-for-placeholders.patch b/patches/ntdll-Placeholders/0014-ntdll-tests-Add-more-tests-for-placeholders.patch index 63629e55..a72c4616 100644 --- a/patches/ntdll-Placeholders/0014-ntdll-tests-Add-more-tests-for-placeholders.patch +++ b/patches/ntdll-Placeholders/0014-ntdll-tests-Add-more-tests-for-placeholders.patch @@ -1,15 +1,15 @@ -From e47dfda03cf4f2e4c1676273da4ee8f54fabbf01 Mon Sep 17 00:00:00 2001 +From 2248dedbf01f0abeb4290d79c13c3b967010ba97 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Wed, 9 Nov 2022 21:23:19 -0600 Subject: [PATCH] ntdll/tests: Add more tests for placeholders. --- dlls/kernelbase/tests/process.c | 15 ++- - dlls/ntdll/tests/virtual.c | 227 +++++++++++++++++++++++--------- - 2 files changed, 179 insertions(+), 63 deletions(-) + dlls/ntdll/tests/virtual.c | 217 +++++++++++++++++++++++--------- + 2 files changed, 171 insertions(+), 61 deletions(-) diff --git a/dlls/kernelbase/tests/process.c b/dlls/kernelbase/tests/process.c -index ed213f1f7b6..0d75c6e2dda 100644 +index b8c3bbb7276..03f76a1b73a 100644 --- a/dlls/kernelbase/tests/process.c +++ b/dlls/kernelbase/tests/process.c @@ -168,7 +168,6 @@ static void test_VirtualAlloc2(void) @@ -42,15 +42,16 @@ index ed213f1f7b6..0d75c6e2dda 100644 UnmapViewOfFile(view1); UnmapViewOfFile(view2); diff --git a/dlls/ntdll/tests/virtual.c b/dlls/ntdll/tests/virtual.c -index 486efabaf70..b41f42ac9d1 100644 +index 335ba118fb9..3000ae68620 100644 --- a/dlls/ntdll/tests/virtual.c +++ b/dlls/ntdll/tests/virtual.c -@@ -291,9 +291,13 @@ static void check_region_size_(void *p, SIZE_T s, unsigned int line) +@@ -293,10 +293,14 @@ static void check_region_size_(void *p, SIZE_T s, unsigned int line) static void test_NtAllocateVirtualMemoryEx(void) { + MEMORY_BASIC_INFORMATION mbi; + void *addresses[16]; + MEM_EXTENDED_PARAMETER ext; SIZE_T size, size2; char *p, *p1, *p2; + ULONG granularity; @@ -59,7 +60,7 @@ index 486efabaf70..b41f42ac9d1 100644 void *addr1; if (!pNtAllocateVirtualMemoryEx) -@@ -329,98 +333,197 @@ static void test_NtAllocateVirtualMemoryEx(void) +@@ -332,48 +336,148 @@ static void test_NtAllocateVirtualMemoryEx(void) status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr1, 0, &size, MEM_RESERVE | MEM_RESERVE_PLACEHOLDER, PAGE_NOACCESS); ok(status == STATUS_INVALID_PARAMETER, "Unexpected status %08lx.\n", status); @@ -69,7 +70,7 @@ index 486efabaf70..b41f42ac9d1 100644 + status = pNtAllocateVirtualMemoryEx(NtCurrentProcess(), &addr1, &size, MEM_RESERVE | MEM_RESERVE_PLACEHOLDER, PAGE_NOACCESS, NULL, 0); -- todo_wine + todo_wine ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); - if (addr1) @@ -105,7 +106,8 @@ index 486efabaf70..b41f42ac9d1 100644 + size = 0x10000; + status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&addr1, &size, MEM_RELEASE | MEM_PRESERVE_PLACEHOLDER); + ok(!status, "Unexpected status %08lx.\n", status); -+ + +- /* Placeholder region splitting. */ + status = NtQueryVirtualMemory( NtCurrentProcess(), addr1, MemoryBasicInformation, &mbi, sizeof(mbi), &size ); + ok(!status, "Unexpected status %08lx.\n", status); + ok(mbi.AllocationProtect == PAGE_NOACCESS, "Unexpected protection %#lx.\n", mbi.AllocationProtect); @@ -174,8 +176,8 @@ index 486efabaf70..b41f42ac9d1 100644 + size = 0; + status = NtFreeVirtualMemory(NtCurrentProcess(), &addr1, &size, MEM_RELEASE); + ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); - - /* Placeholder region splitting. */ ++ ++ /* Placeholder region splitting. */ + addr1 = NULL; + size = 0x10000; + status = pNtAllocateVirtualMemoryEx(NtCurrentProcess(), &addr1, &size, MEM_RESERVE, @@ -186,7 +188,6 @@ index 486efabaf70..b41f42ac9d1 100644 + ok(status == STATUS_CONFLICTING_ADDRESSES, "Unexpected status %08lx.\n", status); + status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p, &size, MEM_RELEASE); + ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); -+ /* Split in three regions. */ addr1 = NULL; @@ -216,9 +217,6 @@ index 486efabaf70..b41f42ac9d1 100644 - status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p2, &size2, MEM_RELEASE); - ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); - } -+ status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&addr1, &size, MEM_RELEASE | MEM_PRESERVE_PLACEHOLDER); -+ ok(status == STATUS_CONFLICTING_ADDRESSES, "Unexpected status %08lx.\n", status); -+ + p = addr1; + p1 = p + size / 2; + p2 = p1 + size / 4; @@ -239,10 +237,8 @@ index 486efabaf70..b41f42ac9d1 100644 /* Split in two regions, specifying lower part. */ addr1 = NULL; - size = 0x10000; - status = pNtAllocateVirtualMemoryEx(NtCurrentProcess(), &addr1, &size, MEM_RESERVE | MEM_RESERVE_PLACEHOLDER, - PAGE_NOACCESS, NULL, 0); -- todo_wine +@@ -383,22 +487,19 @@ static void test_NtAllocateVirtualMemoryEx(void) + todo_wine ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); - if (status == STATUS_SUCCESS) @@ -261,10 +257,6 @@ index 486efabaf70..b41f42ac9d1 100644 - status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p2, &size2, MEM_RELEASE); - ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); - } -+ size2 = 0; -+ status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&addr1, &size2, MEM_RELEASE | MEM_PRESERVE_PLACEHOLDER); -+ ok(status == STATUS_INVALID_PARAMETER_3, "Unexpected status %08lx.\n", status); -+ + p1 = addr1; + p2 = p1 + size / 4; + size2 = size / 4; @@ -281,11 +273,12 @@ index 486efabaf70..b41f42ac9d1 100644 /* Split in two regions, specifying second half. */ addr1 = NULL; - size = 0x10000; - status = pNtAllocateVirtualMemoryEx(NtCurrentProcess(), &addr1, &size, MEM_RESERVE | MEM_RESERVE_PLACEHOLDER, +@@ -407,23 +508,19 @@ static void test_NtAllocateVirtualMemoryEx(void) PAGE_NOACCESS, NULL, 0); -- todo_wine + todo_wine ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); ++ p1 = addr1; ++ p2 = p1 + size / 2; - if (status == STATUS_SUCCESS) - { @@ -303,9 +296,6 @@ index 486efabaf70..b41f42ac9d1 100644 - status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p2, &size2, MEM_RELEASE); - ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); - } -+ p1 = addr1; -+ p2 = p1 + size / 2; -+ + size2 = size / 2; + status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p2, &size2, MEM_RELEASE | MEM_PRESERVE_PLACEHOLDER); + ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); @@ -316,9 +306,9 @@ index 486efabaf70..b41f42ac9d1 100644 + ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); + status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p2, &size2, MEM_RELEASE); + ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status); - } - static void test_NtAllocateVirtualMemoryEx_address_requirements(void) + memset( &ext, 0, sizeof(ext) ); + ext.Type = MemExtendedParameterAttributeFlags; -- -2.38.1 +2.40.1 diff --git a/patches/wineps.drv-PostScript_Fixes/definition b/patches/wineps.drv-PostScript_Fixes/definition index ba05b651..8aee1bd8 100644 --- a/patches/wineps.drv-PostScript_Fixes/definition +++ b/patches/wineps.drv-PostScript_Fixes/definition @@ -1 +1,2 @@ Fixes: [4836] Various improvements for wineps.drv for Adobe PageMaker compatibility +Disabled: True diff --git a/staging/upstream-commit b/staging/upstream-commit index 929f5046..54efdae4 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -222d20a585c454cb591e3dc539f3bd52427ea30c +de034b36b7fbad0edae0a2700376273c74e48ac6