Rebase against 9a4992173e165b04ff79d5283f81064f7585e7ad.

This commit is contained in:
Alistair Leslie-Hughes 2022-01-27 11:50:15 +11:00
parent b8a377e8d7
commit b1a5648b37
8 changed files with 74 additions and 76 deletions

View File

@ -1,4 +1,4 @@
From a349cc8bdcc3a083ea507dbbdeba9053e3a338e4 Mon Sep 17 00:00:00 2001
From bd6e11aee0fbe2f880f87bec8b3d145b3de15dab Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 22 Mar 2016 23:08:30 +0100
Subject: [PATCH] include: Check element type in CONTAINING_RECORD and similar
@ -31,31 +31,31 @@ index b4d681fe0f3..287ad394fae 100644
#endif /* __WINE_SERVER_LIST_H */
diff --git a/include/wine/rbtree.h b/include/wine/rbtree.h
index 8aae29c8c10..330b3e8fbc9 100644
index 4e86f3cfb84..694dc039cb1 100644
--- a/include/wine/rbtree.h
+++ b/include/wine/rbtree.h
@@ -23,8 +23,14 @@
#ifndef __WINE_WINE_RBTREE_H
#define __WINE_WINE_RBTREE_H
-#define WINE_RB_ENTRY_VALUE(element, type, field) \
-#define RB_ENTRY_VALUE(element, type, field) \
- ((type *)((char *)(element) - offsetof(type, field)))
+#ifdef __GNUC__
+# define WINE_RB_ENTRY_VALUE(element, type, field) ({ \
+# define RB_ENTRY_VALUE(element, type, field) ({ \
+ const typeof(((type *)0)->field) *__ptr = (element); \
+ (type *)((char *)__ptr - offsetof(type, field)); })
+#else
+# define WINE_RB_ENTRY_VALUE(element, type, field) \
+# define RB_ENTRY_VALUE(element, type, field) \
+ ((type *)((char *)(element) - offsetof(type, field)))
+#endif
struct wine_rb_entry
struct rb_entry
{
diff --git a/include/winnt.h b/include/winnt.h
index 46e17c546a7..d5c65d2017b 100644
index 9296a3dc555..c7406b8db39 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -793,8 +793,14 @@ typedef struct _MEMORY_BASIC_INFORMATION
@@ -840,8 +840,14 @@ typedef struct _WIN32_MEMORY_RANGE_ENTRY
#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
#define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field))
@ -73,5 +73,5 @@ index 46e17c546a7..d5c65d2017b 100644
#define ARRAYSIZE(x) (sizeof(x) / sizeof((x)[0]))
#ifdef __WINESRC__
--
2.26.2
2.34.1

View File

@ -1,4 +1,4 @@
From 0c01c25728780e3419f37ef612b14cc7e29f65f5 Mon Sep 17 00:00:00 2001
From 8c7187f5501fff70df81612dfbdd084e67605189 Mon Sep 17 00:00:00 2001
From: Lucian Poston <lucianposton@pm.me>
Date: Mon, 21 May 2018 18:13:00 -0700
Subject: [PATCH] dwrite: Use font fallback when mapping characters
@ -11,10 +11,10 @@ Signed-off-by: Lucian Poston <lucianposton@pm.me>
3 files changed, 74 insertions(+), 63 deletions(-)
diff --git a/dlls/dwrite/analyzer.c b/dlls/dwrite/analyzer.c
index 7112ca71932..43f8c659bfd 100644
index 13ccf8e4434..c535b0cf49d 100644
--- a/dlls/dwrite/analyzer.c
+++ b/dlls/dwrite/analyzer.c
@@ -2088,6 +2088,7 @@ static HRESULT fallback_get_fallback_font(struct dwrite_fontfallback *fallback,
@@ -2094,6 +2094,7 @@ static HRESULT fallback_get_fallback_font(struct dwrite_fontfallback *fallback,
IDWriteFont **mapped_font)
{
const struct fallback_mapping *mapping;
@ -22,7 +22,7 @@ index 7112ca71932..43f8c659bfd 100644
HRESULT hr;
UINT32 i;
@@ -2099,9 +2100,15 @@ static HRESULT fallback_get_fallback_font(struct dwrite_fontfallback *fallback,
@@ -2105,9 +2106,15 @@ static HRESULT fallback_get_fallback_font(struct dwrite_fontfallback *fallback,
return E_FAIL;
}
@ -39,7 +39,7 @@ index 7112ca71932..43f8c659bfd 100644
weight, style, stretch, mapped_font);
if (hr == S_OK) {
TRACE("Created fallback font using family %s.\n", debugstr_w(mapping->families[i]));
@@ -2158,32 +2165,66 @@ static HRESULT WINAPI fontfallback_MapCharacters(IDWriteFontFallback1 *iface, ID
@@ -2164,32 +2171,66 @@ static HRESULT WINAPI fontfallback_MapCharacters(IDWriteFontFallback1 *iface, ID
if (basefamily && *basefamily) {
hr = create_matching_font(basecollection, basefamily, weight, style, stretch, ret_font);
@ -124,10 +124,10 @@ index 7112ca71932..43f8c659bfd 100644
free(buff);
return hr;
diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c
index f28c71082c0..9a884824b76 100644
index d4aa49c6a6c..cda50c20777 100644
--- a/dlls/dwrite/layout.c
+++ b/dlls/dwrite/layout.c
@@ -964,6 +964,12 @@ static HRESULT layout_resolve_fonts(struct dwrite_textlayout *layout)
@@ -725,6 +725,12 @@ static HRESULT layout_resolve_fonts(struct dwrite_textlayout *layout)
goto fatal;
}
@ -141,10 +141,10 @@ index f28c71082c0..9a884824b76 100644
IDWriteFont_Release(font);
if (FAILED(hr)) {
diff --git a/dlls/dwrite/tests/layout.c b/dlls/dwrite/tests/layout.c
index a1bff0d26d6..929d6ec1cc2 100644
index 096fc554253..b622aeb4239 100644
--- a/dlls/dwrite/tests/layout.c
+++ b/dlls/dwrite/tests/layout.c
@@ -3368,35 +3368,23 @@ todo_wine
@@ -3368,35 +3368,23 @@ static void test_GetMetrics(void)
count = 0;
hr = IDWriteTextLayout_GetClusterMetrics(layout, clusters, 4, &count);
@ -189,7 +189,7 @@ index a1bff0d26d6..929d6ec1cc2 100644
ok(mappedlength == 1, "got %u\n", mappedlength);
-}
ok(scale == 1.0f, "got %f\n", scale);
-todo_wine
- todo_wine
ok(font != NULL, "got %p\n", font);
if (font) {
IDWriteFont_Release(font);
@ -202,7 +202,7 @@ index a1bff0d26d6..929d6ec1cc2 100644
ok(mappedlength == 3, "got %u\n", mappedlength);
-}
ok(scale == 1.0f, "got %f\n", scale);
-todo_wine
- todo_wine
ok(font != NULL, "got %p\n", font);
-if (font) {
- IDWriteFont_Release(font);
@ -222,7 +222,7 @@ index a1bff0d26d6..929d6ec1cc2 100644
ok(mappedlength == 1, "got %u\n", mappedlength);
-}
ok(scale == 1.0f, "got %f\n", scale);
-todo_wine
- todo_wine
ok(font != NULL, "got %p\n", font);
-if (font) {
IDWriteFont_Release(font);
@ -239,7 +239,7 @@ index a1bff0d26d6..929d6ec1cc2 100644
ok(mappedlength == 1, "got %u\n", mappedlength);
-}
ok(scale == 1.0f, "got %f\n", scale);
-todo_wine
- todo_wine
ok(font != NULL, "got %p\n", font);
-if (font) {
IDWriteFont_Release(font);
@ -304,5 +304,5 @@ index a1bff0d26d6..929d6ec1cc2 100644
IDWriteTextLayout_Release(layout);
--
2.33.0
2.34.1

View File

@ -1,19 +1,19 @@
From e741e408304cd80852ec392fe491f1cde403e283 Mon Sep 17 00:00:00 2001
From dbe39014190d350ed1379569edce909fa29d69d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 26 Feb 2016 04:04:12 +0100
Subject: mmsystem.dll16: Translate MidiIn messages.
Subject: [PATCH] mmsystem.dll16: Translate MidiIn messages.
---
dlls/mmsystem.dll16/message16.c | 128 +++++++++++++++++++++++++++++++++++++++-
dlls/mmsystem.dll16/message16.c | 128 +++++++++++++++++++++++++++++++-
1 file changed, 126 insertions(+), 2 deletions(-)
diff --git a/dlls/mmsystem.dll16/message16.c b/dlls/mmsystem.dll16/message16.c
index 26e47b2..05a1995 100644
index c6a10f57188..08dbce26d88 100644
--- a/dlls/mmsystem.dll16/message16.c
+++ b/dlls/mmsystem.dll16/message16.c
@@ -95,7 +95,78 @@ static void MMSYSTDRV_Mixer_MapCB(DWORD uMsg, DWORD_PTR* dwUser
*/
static MMSYSTEM_MapType MMSYSTDRV_MidiIn_Map16To32W (UINT wMsg, DWORD_PTR* lpParam1, DWORD_PTR* lpParam2)
static MMSYSTEM_MapType MMSYSTDRV_MidiIn_Map16To32W (DWORD wMsg, DWORD_PTR* lpParam1, DWORD_PTR* lpParam2)
{
- return MMSYSTEM_MAP_MSGERROR;
+ MMSYSTEM_MapType ret = MMSYSTEM_MAP_MSGERROR;
@ -91,9 +91,9 @@ index 26e47b2..05a1995 100644
}
/**************************************************************************
@@ -103,7 +174,60 @@ static MMSYSTEM_MapType MMSYSTDRV_MidiIn_Map16To32W (UINT wMsg, DWORD_PTR* lpP
@@ -103,7 +174,60 @@ static MMSYSTEM_MapType MMSYSTDRV_MidiIn_Map16To32W (DWORD wMsg, DWORD_PTR* lp
*/
static MMSYSTEM_MapType MMSYSTDRV_MidiIn_UnMap16To32W(UINT wMsg, DWORD_PTR* lpParam1, DWORD_PTR* lpParam2, MMRESULT fn_ret)
static MMSYSTEM_MapType MMSYSTDRV_MidiIn_UnMap16To32W(DWORD wMsg, DWORD_PTR* lpParam1, DWORD_PTR* lpParam2, MMRESULT fn_ret)
{
- return MMSYSTEM_MAP_MSGERROR;
+ MMSYSTEM_MapType ret = MMSYSTEM_MAP_MSGERROR;
@ -154,5 +154,5 @@ index 26e47b2..05a1995 100644
/**************************************************************************
--
2.7.1
2.34.1

View File

@ -1,4 +1,4 @@
From e127c088e6f4cfae3066b31adcd73c4eee9008ed Mon Sep 17 00:00:00 2001
From 0cb1d81c14522afe45b1bb5a8194efd2470efe27 Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Mon, 25 Nov 2019 12:19:20 +0300
Subject: [PATCH] ntdll: Force virtual memory allocation order.
@ -12,14 +12,14 @@ are from higher memory than they expect.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48175
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46568
---
dlls/ntdll/unix/virtual.c | 421 ++++++++++++++++++--------------------
1 file changed, 204 insertions(+), 217 deletions(-)
dlls/ntdll/unix/virtual.c | 417 ++++++++++++++++++--------------------
1 file changed, 202 insertions(+), 215 deletions(-)
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 606e136dfaa..4899fc7b443 100644
index 7654055f59b..e971e0523ba 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -1217,44 +1217,6 @@ static struct file_view *find_view_range( const void *addr, size_t size )
@@ -1202,44 +1202,6 @@ static struct file_view *find_view_range( const void *addr, size_t size )
}
@ -64,7 +64,7 @@ index 606e136dfaa..4899fc7b443 100644
/***********************************************************************
* try_map_free_area
*
@@ -1287,110 +1249,6 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
@@ -1272,110 +1234,6 @@ static void* try_map_free_area( void *base, void *end, ptrdiff_t step,
return NULL;
}
@ -94,7 +94,7 @@ index 606e136dfaa..4899fc7b443 100644
- start = ROUND_ADDR( (char *)view->base - size, granularity_mask );
- /* stop if remaining space is not large enough */
- if (!start || start >= end || start < base) return NULL;
- first = wine_rb_prev( first );
- first = rb_prev( first );
- }
- }
- else
@ -110,7 +110,7 @@ index 606e136dfaa..4899fc7b443 100644
- start = ROUND_ADDR( (char *)view->base + view->size + granularity_mask, granularity_mask );
- /* stop if remaining space is not large enough */
- if (!start || start >= end || (char *)end - (char *)start < size) return NULL;
- first = wine_rb_next( first );
- first = rb_next( first );
- }
- }
-
@ -175,7 +175,7 @@ index 606e136dfaa..4899fc7b443 100644
/***********************************************************************
* add_reserved_area
*
@@ -1548,8 +1406,7 @@ static void delete_view( struct file_view *view ) /* [in] View */
@@ -1533,8 +1391,7 @@ 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 );
@ -185,7 +185,7 @@ index 606e136dfaa..4899fc7b443 100644
wine_rb_remove( &views_tree, &view->entry );
*(struct file_view **)view = next_free_view;
next_free_view = view;
@@ -1597,8 +1454,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
@@ -1582,8 +1439,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
set_page_vprot( base, size, vprot );
wine_rb_put( &views_tree, view->base, &view->entry );
@ -195,7 +195,7 @@ index 606e136dfaa..4899fc7b443 100644
*view_ret = view;
@@ -1812,51 +1668,218 @@ static inline void *unmap_extra_space( void *ptr, size_t total_size, size_t want
@@ -1797,51 +1653,218 @@ static inline void *unmap_extra_space( void *ptr, size_t total_size, size_t want
struct alloc_area
{
@ -219,15 +219,15 @@ index 606e136dfaa..4899fc7b443 100644
{
- struct alloc_area *alloc = arg;
- void *end = (char *)start + size;
-
- if (start < address_space_start) start = address_space_start;
- if (is_beyond_limit( start, size, alloc->limit )) end = alloc->limit;
- if (start >= end) return 0;
+ char *intersect_start, *intersect_end;
+ char *end = (char *)start + size;
+ struct alloc_area *area = arg;
+ char *alloc_start;
- if (start < address_space_start) start = address_space_start;
- if (is_beyond_limit( start, size, alloc->limit )) end = alloc->limit;
- if (start >= end) return 0;
-
- /* make sure we don't touch the preloader reserved range */
- if (preload_reserve_end >= start)
+ if (area->top_down)
@ -250,23 +250,19 @@ index 606e136dfaa..4899fc7b443 100644
{
- if (preload_reserve_start <= start) return 0; /* no space in that area */
- if (preload_reserve_start < end) end = preload_reserve_start;
- }
- else if (preload_reserve_start <= start) start = preload_reserve_end;
- else
- {
- /* range is split in two by the preloader reservation, try first part */
- if ((alloc->result = find_reserved_free_area( start, preload_reserve_start, alloc->size,
- alloc->top_down )))
+ alloc_start = ROUND_ADDR( (char *)area->map_area_end - size, granularity_mask );
+ if ((area->result = try_map_free_area( intersect_end, alloc_start + size, area->step,
+ alloc_start, area->size, area->unix_prot )))
return 1;
- /* then fall through to try second part */
- start = preload_reserve_end;
+ return 1;
}
- else if (preload_reserve_start <= start) start = preload_reserve_end;
- else
+
+ if (intersect_end - intersect_start >= area->size)
+ {
{
- /* range is split in two by the preloader reservation, try first part */
- if ((alloc->result = find_reserved_free_area( start, preload_reserve_start, alloc->size,
- alloc->top_down )))
+ alloc_start = ROUND_ADDR( intersect_end - area->size, granularity_mask );
+ if ((area->result = anon_mmap_fixed( alloc_start, area->size,
+ area->unix_prot, 0 )) != alloc_start)
@ -298,8 +294,10 @@ index 606e136dfaa..4899fc7b443 100644
+ {
+ if ((area->result = try_map_free_area( area->map_area_start, intersect_start, area->step,
+ area->map_area_start, area->size, area->unix_prot )))
+ return 1;
+ }
return 1;
- /* then fall through to try second part */
- start = preload_reserve_end;
}
+
+ if (intersect_end - intersect_start >= area->size)
+ {
@ -445,7 +443,7 @@ index 606e136dfaa..4899fc7b443 100644
/***********************************************************************
* map_fixed_area
*
@@ -1928,48 +1951,11 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
@@ -1913,48 +1936,11 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
if (status != STATUS_SUCCESS) return status;
ptr = base;
}
@ -497,7 +495,7 @@ index 606e136dfaa..4899fc7b443 100644
status = create_view( view_ret, ptr, size, vprot );
if (status != STATUS_SUCCESS) unmap_area( ptr, size );
return status;
@@ -2695,6 +2681,7 @@ void virtual_init(void)
@@ -2680,6 +2666,7 @@ void virtual_init(void)
if (preload_reserve_start)
address_space_start = min( address_space_start, preload_reserve_start );
}
@ -506,5 +504,5 @@ index 606e136dfaa..4899fc7b443 100644
/* try to find space in a reserved area for the views and pages protection table */
--
2.30.2
2.34.1

View File

@ -184,11 +184,11 @@ index 4899fc7b443..cee739bd942 100644
+ if (prev && (char *)prev->base >= native_mapped_end)
+ {
+ next = prev;
+ prev = WINE_RB_ENTRY_VALUE( wine_rb_prev( &next->entry ), struct file_view, entry );
+ prev = WINE_RB_ENTRY_VALUE( rb_prev( &next->entry ), struct file_view, entry );
+ }
+ else if (prev)
+ {
+ next = WINE_RB_ENTRY_VALUE( wine_rb_next( &prev->entry ), struct file_view, entry );
+ next = WINE_RB_ENTRY_VALUE( rb_next( &prev->entry ), struct file_view, entry );
+ }
+ else
+ {

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "1d178982ae5a73b18f367026c8689b56789c39fd"
echo "9a4992173e165b04ff79d5283f81064f7585e7ad"
}
# Show version information

View File

@ -1,4 +1,4 @@
From 3b7ee6a45c7b33aeccc9ccf7460d1e4d69cc7023 Mon Sep 17 00:00:00 2001
From 1f31bae540fcdd419eda6d012317f904860ec445 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 21 Apr 2021 21:06:55 +1000
Subject: [PATCH] secur32: Input Parameter should be NULL on first call to
@ -13,11 +13,11 @@ Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c
index 32181b3b35f..bca15750bc9 100644
index 141a191c7c6..443bf8f3d6c 100644
--- a/dlls/secur32/schannel.c
+++ b/dlls/secur32/schannel.c
@@ -724,7 +724,7 @@ static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextW(
ptsExpiry->HighPart = 0;
@@ -734,7 +734,7 @@ static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextW(
return SEC_E_INSUFFICIENT_MEMORY;
}
- if (!phContext)
@ -26,10 +26,10 @@ index 32181b3b35f..bca15750bc9 100644
ULONG_PTR handle;
struct create_session_params create_params;
diff --git a/dlls/secur32/tests/schannel.c b/dlls/secur32/tests/schannel.c
index 7cb3871193c..27381d60b38 100644
index 6c15addf2fc..47f7ca0ef3a 100644
--- a/dlls/secur32/tests/schannel.c
+++ b/dlls/secur32/tests/schannel.c
@@ -1319,7 +1319,7 @@ todo_wine
@@ -1397,7 +1397,7 @@ todo_wine
status = InitializeSecurityContextA(&cred_handle, &context, (SEC_CHAR *)"localhost",
ISC_REQ_CONFIDENTIALITY|ISC_REQ_STREAM,
0, 0, NULL, 0, &context, &buffers[0], &attrs, NULL);
@ -38,8 +38,8 @@ index 7cb3871193c..27381d60b38 100644
if (status != SEC_I_CONTINUE_NEEDED)
{
skip("skipping remaining renegotiate test\n");
@@ -1357,7 +1357,7 @@ todo_wine
ISC_REQ_USE_SUPPLIED_CREDS, 0, 0, &buffers[1], 0, NULL, &buffers[0], &attrs, NULL);
@@ -1439,7 +1439,7 @@ todo_wine
ISC_REQ_USE_SUPPLIED_CREDS, 0, 0, &buffers[1], 0, &context2, &buffers[0], &attrs, NULL);
buffers[1].pBuffers[0].cbBuffer = buf_size;
}
- ok (status == SEC_E_OK, "got %08x\n", status);
@ -47,7 +47,7 @@ index 7cb3871193c..27381d60b38 100644
buf = &buffers[0].pBuffers[0];
buf->cbBuffer = buf_size;
@@ -1367,7 +1367,7 @@ todo_wine
@@ -1449,7 +1449,7 @@ todo_wine
buffers[0].pBuffers[0].BufferType = SECBUFFER_DATA;
buffers[0].pBuffers[1].BufferType = SECBUFFER_EMPTY;
status = DecryptMessage(&context, &buffers[0], 0, NULL);
@ -57,5 +57,5 @@ index 7cb3871193c..27381d60b38 100644
{
ok(buffers[0].pBuffers[0].BufferType == SECBUFFER_STREAM_HEADER, "Expected first buffer to be SECBUFFER_STREAM_HEADER\n");
--
2.33.0
2.34.1

View File

@ -1 +1 @@
1d178982ae5a73b18f367026c8689b56789c39fd
9a4992173e165b04ff79d5283f81064f7585e7ad