You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
59 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
7b5a0e5a94 | ||
|
bf85255a61 | ||
|
7f9b426cb9 | ||
|
a1bda115af | ||
|
033542b024 | ||
|
1f7dd0ee12 | ||
|
4501d49149 | ||
|
5246a035e9 | ||
|
fbe1ba5578 | ||
|
24cd5774cf | ||
|
307f8a782d | ||
|
bee49c0b29 | ||
|
4b2ca6b38e | ||
|
762c0e7040 | ||
|
0a85e3f331 | ||
|
68f3e40ff7 | ||
|
cc185de9ef | ||
|
e30e225125 | ||
|
d58990f6ac | ||
|
3e3661298c | ||
|
7d92cd315b | ||
|
3931c93628 | ||
|
813de5d6f8 | ||
|
dfc3b0f583 | ||
|
3e39e3132b | ||
|
76ba9d2387 | ||
|
d4918b4305 | ||
|
dcd4faf1c9 | ||
|
7557b3e2eb | ||
|
4b12c5a4e3 | ||
|
ca73dc62cd | ||
|
4147635dfc | ||
|
4e6a477acd | ||
|
169c49055d | ||
|
7b0b95ee53 | ||
|
1785a56934 | ||
|
f2d1cc1a8c | ||
|
8a46f19ece | ||
|
d33cdb84fd | ||
|
69a4e4baa2 | ||
|
2ad422ff4d | ||
|
a8b95783eb | ||
|
4581daea3b | ||
|
77d29cbee9 | ||
|
f90eb74f8d | ||
|
abc772e286 | ||
|
2c2eabb5c0 | ||
|
75637c26ea | ||
|
4e0031b058 | ||
|
0d8d1f0447 | ||
|
029c249e78 | ||
|
8d4d0a840e | ||
|
767b90c5dd | ||
|
a23c076055 | ||
|
e2c2447841 | ||
|
4861c47f2b | ||
|
437038604a | ||
|
4c160ec82a | ||
|
528144a4ad |
@@ -1,4 +1,4 @@
|
||||
From 494fc3abe1eddabcf7cede677ee907284e89eea8 Mon Sep 17 00:00:00 2001
|
||||
From a349cc8bdcc3a083ea507dbbdeba9053e3a338e4 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
|
||||
@@ -11,7 +11,7 @@ Subject: [PATCH] include: Check element type in CONTAINING_RECORD and similar
|
||||
3 files changed, 24 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/include/wine/list.h b/include/wine/list.h
|
||||
index b4d681fe..287ad394 100644
|
||||
index b4d681fe0f3..287ad394fae 100644
|
||||
--- a/include/wine/list.h
|
||||
+++ b/include/wine/list.h
|
||||
@@ -228,7 +228,13 @@ static inline void list_move_head( struct list *dst, struct list *src )
|
||||
@@ -31,7 +31,7 @@ index b4d681fe..287ad394 100644
|
||||
|
||||
#endif /* __WINE_SERVER_LIST_H */
|
||||
diff --git a/include/wine/rbtree.h b/include/wine/rbtree.h
|
||||
index dc50b5e7..8130deb5 100644
|
||||
index 8aae29c8c10..330b3e8fbc9 100644
|
||||
--- a/include/wine/rbtree.h
|
||||
+++ b/include/wine/rbtree.h
|
||||
@@ -23,8 +23,14 @@
|
||||
@@ -52,10 +52,10 @@ index dc50b5e7..8130deb5 100644
|
||||
struct wine_rb_entry
|
||||
{
|
||||
diff --git a/include/winnt.h b/include/winnt.h
|
||||
index 2b489382..a156efc4 100644
|
||||
index 46e17c546a7..d5c65d2017b 100644
|
||||
--- a/include/winnt.h
|
||||
+++ b/include/winnt.h
|
||||
@@ -760,8 +760,14 @@ typedef struct _MEMORY_BASIC_INFORMATION
|
||||
@@ -793,8 +793,14 @@ typedef struct _MEMORY_BASIC_INFORMATION
|
||||
#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))
|
||||
|
||||
@@ -70,8 +70,8 @@ index 2b489382..a156efc4 100644
|
||||
+ ((type *)((PCHAR)(address) - offsetof(type, field)))
|
||||
+#endif
|
||||
|
||||
#define ARRAYSIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||
#ifdef __WINESRC__
|
||||
# define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||
--
|
||||
2.20.1
|
||||
2.26.2
|
||||
|
||||
|
@@ -1,17 +1,31 @@
|
||||
From 05ca39b029f8f710ca53aeafc36384fd39fd6b89 Mon Sep 17 00:00:00 2001
|
||||
From c097870c69720ece3874ad4ff987408a8c24ffb2 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 2 Oct 2014 19:53:46 +0200
|
||||
Subject: [PATCH] winelib: Append '(Staging)' at the end of the version string.
|
||||
|
||||
---
|
||||
libs/wine/Makefile.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
dlls/ntdll/Makefile.in | 2 +-
|
||||
libs/wine/Makefile.in | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
|
||||
index ebf607e9d43..de93445d4e3 100644
|
||||
--- a/dlls/ntdll/Makefile.in
|
||||
+++ b/dlls/ntdll/Makefile.in
|
||||
@@ -69,7 +69,7 @@ server_EXTRADEFS = \
|
||||
-DBIN_TO_DATADIR=\"`$(MAKEDEP) -R ${bindir} ${datadir}/wine`\"
|
||||
|
||||
unix/version.c: dummy
|
||||
- version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || (rm -f $@ && exit 1)
|
||||
+ version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1 (Staging)";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || (rm -f $@ && exit 1)
|
||||
|
||||
dummy:
|
||||
.PHONY: dummy
|
||||
diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in
|
||||
index 4833eb5..3cfa4f4 100644
|
||||
index fe2a2b45e58..1e55a6b1f46 100644
|
||||
--- a/libs/wine/Makefile.in
|
||||
+++ b/libs/wine/Makefile.in
|
||||
@@ -31,7 +31,7 @@ libwine_LDFLAGS = $(LIBWINE_LDFLAGS)
|
||||
@@ -100,7 +100,7 @@ libwine_LDFLAGS = $(LIBWINE_LDFLAGS)
|
||||
libwine_DEPS = $(LIBWINE_DEPENDS)
|
||||
|
||||
version.c: dummy
|
||||
@@ -21,5 +35,5 @@ index 4833eb5..3cfa4f4 100644
|
||||
dummy:
|
||||
.PHONY: dummy
|
||||
--
|
||||
1.9.1
|
||||
2.26.2
|
||||
|
||||
|
@@ -1,66 +1,33 @@
|
||||
From 63d2046a8f4388fbc7c12a07ae5f412fccc1b202 Mon Sep 17 00:00:00 2001
|
||||
From 599c50c9e339fe04e96fdb665b3d7ccb1a7708b7 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Thu, 29 May 2014 23:43:45 +0200
|
||||
Subject: [PATCH] loader: Add commandline option --patches to show the patch
|
||||
list.
|
||||
|
||||
---
|
||||
dlls/ntdll/misc.c | 8 ++++++++
|
||||
dlls/ntdll/ntdll.spec | 1 +
|
||||
include/wine/library.h | 1 +
|
||||
libs/wine/config.c | 6 ++++++
|
||||
libs/wine/wine.map | 1 +
|
||||
loader/main.c | 42 +++++++++++++++++++++++++++++++++++++++++-
|
||||
6 files changed, 58 insertions(+), 1 deletion(-)
|
||||
4 files changed, 49 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c
|
||||
index c29a1c26c26..8906e194272 100644
|
||||
--- a/dlls/ntdll/misc.c
|
||||
+++ b/dlls/ntdll/misc.c
|
||||
@@ -60,6 +60,14 @@ const char * CDECL NTDLL_wine_get_version(void)
|
||||
return wine_get_version();
|
||||
}
|
||||
|
||||
+/*********************************************************************
|
||||
+ * wine_get_patches (NTDLL.@)
|
||||
+ */
|
||||
+const void * CDECL NTDLL_wine_get_patches(void)
|
||||
+{
|
||||
+ return wine_get_patches();
|
||||
+}
|
||||
+
|
||||
/*********************************************************************
|
||||
* wine_get_build_id (NTDLL.@)
|
||||
*/
|
||||
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
|
||||
index e61a2578da5..52db67fd978 100644
|
||||
--- a/dlls/ntdll/ntdll.spec
|
||||
+++ b/dlls/ntdll/ntdll.spec
|
||||
@@ -1571,6 +1571,7 @@
|
||||
|
||||
# Version
|
||||
@ cdecl wine_get_version() NTDLL_wine_get_version
|
||||
+@ cdecl wine_get_patches() NTDLL_wine_get_patches
|
||||
@ cdecl wine_get_build_id() NTDLL_wine_get_build_id
|
||||
@ cdecl wine_get_host_version(ptr ptr) NTDLL_wine_get_host_version
|
||||
|
||||
diff --git a/include/wine/library.h b/include/wine/library.h
|
||||
index f338c4da190..1f992da6062 100644
|
||||
index 090b8349559..b8a4a2df576 100644
|
||||
--- a/include/wine/library.h
|
||||
+++ b/include/wine/library.h
|
||||
@@ -47,6 +47,7 @@ extern const char *wine_get_data_dir(void);
|
||||
extern const char *wine_get_server_dir(void);
|
||||
extern const char *wine_get_user_name(void);
|
||||
@@ -42,6 +42,7 @@ extern "C" {
|
||||
/* configuration */
|
||||
|
||||
extern const char *wine_get_version(void);
|
||||
+extern const void *wine_get_patches(void);
|
||||
extern const char *wine_get_build_id(void);
|
||||
extern void wine_init_argv0_path( const char *argv0 );
|
||||
extern void wine_exec_wine_binary( const char *name, char **argv, const char *env_var );
|
||||
diff --git a/libs/wine/config.c b/libs/wine/config.c
|
||||
index 2a3314cbfda..5b66c063db6 100644
|
||||
index f5b4c0de9af..e52739d55ad 100644
|
||||
--- a/libs/wine/config.c
|
||||
+++ b/libs/wine/config.c
|
||||
@@ -504,6 +504,12 @@ const char *wine_get_version(void)
|
||||
@@ -515,6 +515,12 @@ const char *wine_get_version(void)
|
||||
return PACKAGE_VERSION;
|
||||
}
|
||||
|
||||
@@ -74,22 +41,22 @@ index 2a3314cbfda..5b66c063db6 100644
|
||||
const char *wine_get_build_id(void)
|
||||
{
|
||||
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
|
||||
index 7ea849b908e..a7359ee7872 100644
|
||||
index 1143b129734..55f874d3e74 100644
|
||||
--- a/libs/wine/wine.map
|
||||
+++ b/libs/wine/wine.map
|
||||
@@ -22,6 +22,7 @@ WINE_1.0
|
||||
wine_get_server_dir;
|
||||
wine_get_user_name;
|
||||
@@ -13,6 +13,7 @@ WINE_1.0
|
||||
wine_exec_wine_binary;
|
||||
wine_get_build_id;
|
||||
wine_get_version;
|
||||
+ wine_get_patches;
|
||||
wine_init;
|
||||
wine_init_argv0_path;
|
||||
wine_mmap_add_reserved_area;
|
||||
diff --git a/loader/main.c b/loader/main.c
|
||||
index 407c897892d..d97d6b28bf8 100644
|
||||
index 0e6b6f66b50..24bcfff8c4c 100644
|
||||
--- a/loader/main.c
|
||||
+++ b/loader/main.c
|
||||
@@ -53,7 +53,8 @@ static void check_command_line( int argc, char *argv[] )
|
||||
@@ -55,7 +55,8 @@ static void check_command_line( int argc, char *argv[] )
|
||||
static const char usage[] =
|
||||
"Usage: wine PROGRAM [ARGUMENTS...] Run the specified program\n"
|
||||
" wine --help Display this help and exit\n"
|
||||
@@ -99,7 +66,7 @@ index 407c897892d..d97d6b28bf8 100644
|
||||
|
||||
if (argc <= 1)
|
||||
{
|
||||
@@ -70,6 +71,45 @@ static void check_command_line( int argc, char *argv[] )
|
||||
@@ -72,6 +73,45 @@ static void check_command_line( int argc, char *argv[] )
|
||||
printf( "%s\n", wine_get_build_id() );
|
||||
exit(0);
|
||||
}
|
||||
@@ -146,5 +113,5 @@ index 407c897892d..d97d6b28bf8 100644
|
||||
|
||||
|
||||
--
|
||||
2.25.1
|
||||
2.26.2
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 8fe522dadc480b57415a7b63e0752de113851231 Mon Sep 17 00:00:00 2001
|
||||
From 90474eb9f6583f2e8fe0314cfa0b0dc04797833b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 5 Aug 2017 01:45:29 +0200
|
||||
Subject: [PATCH] ntdll: Add function to create new tokens for elevation
|
||||
@@ -14,10 +14,10 @@ Subject: [PATCH] ntdll: Add function to create new tokens for elevation
|
||||
6 files changed, 117 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
|
||||
index 853da5c3fcf..33c1355c8b5 100644
|
||||
index 1ebe07fc08c..7a19674b2f3 100644
|
||||
--- a/dlls/ntdll/ntdll.spec
|
||||
+++ b/dlls/ntdll/ntdll.spec
|
||||
@@ -1569,6 +1569,9 @@
|
||||
@@ -1586,6 +1586,9 @@
|
||||
# Virtual memory
|
||||
@ cdecl __wine_locked_recvmsg(long ptr long)
|
||||
|
||||
@@ -26,12 +26,12 @@ index 853da5c3fcf..33c1355c8b5 100644
|
||||
+
|
||||
# Version
|
||||
@ cdecl wine_get_version() NTDLL_wine_get_version
|
||||
@ cdecl wine_get_patches() NTDLL_wine_get_patches
|
||||
@ cdecl wine_get_build_id() NTDLL_wine_get_build_id
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index b62239de5b4..d494dc71263 100644
|
||||
index 27e7141bc65..4baf8a3967b 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -96,6 +96,9 @@ extern int __wine_main_argc;
|
||||
@@ -107,6 +107,9 @@ extern int __wine_main_argc;
|
||||
extern char **__wine_main_argv;
|
||||
extern WCHAR **__wine_main_wargv;
|
||||
|
||||
@@ -39,13 +39,13 @@ index b62239de5b4..d494dc71263 100644
|
||||
+extern HANDLE CDECL __wine_create_default_token(BOOL admin);
|
||||
+
|
||||
/* server support */
|
||||
extern timeout_t server_start_time DECLSPEC_HIDDEN;
|
||||
extern unsigned int server_cpus DECLSPEC_HIDDEN;
|
||||
extern const char *build_dir DECLSPEC_HIDDEN;
|
||||
extern const char *data_dir DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
|
||||
index 6d506c85306..9940e6cf7c9 100644
|
||||
index 6c5f722b2a6..df81e061e7b 100644
|
||||
--- a/dlls/ntdll/process.c
|
||||
+++ b/dlls/ntdll/process.c
|
||||
@@ -124,6 +124,24 @@ HANDLE CDECL __wine_make_process_system(void)
|
||||
@@ -119,6 +119,24 @@ HANDLE CDECL __wine_make_process_system(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -71,10 +71,10 @@ index 6d506c85306..9940e6cf7c9 100644
|
||||
|
||||
#define UNIMPLEMENTED_INFO_CLASS(c) \
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index efacadac42b..434cd11baf0 100644
|
||||
index c53ceb50d50..947a3c971f5 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3749,6 +3749,14 @@ struct handle_info
|
||||
@@ -3755,6 +3755,14 @@ struct handle_info
|
||||
@END
|
||||
|
||||
|
||||
@@ -215,5 +215,5 @@ index c4f1cd943c2..970ed1838da 100644
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.26.0
|
||||
2.26.2
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 6a09d34647aa517e45bc0bb20a92d0d94a1da888 Mon Sep 17 00:00:00 2001
|
||||
From 2f03ded51b6f537ac6a4f3bfb51e1d0998a27c48 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 5 Aug 2017 03:39:55 +0200
|
||||
Subject: [PATCH] ntdll: Implement process token elevation through manifests.
|
||||
@@ -12,10 +12,10 @@ Subject: [PATCH] ntdll: Implement process token elevation through manifests.
|
||||
5 files changed, 67 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 2f203447e..7c5dd308b 100644
|
||||
index 38c893e3eb4..d32b57612d5 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -3804,6 +3804,32 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
|
||||
@@ -4045,6 +4045,32 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ index 2f203447e..7c5dd308b 100644
|
||||
/***********************************************************************
|
||||
* load_global_options
|
||||
*/
|
||||
@@ -4233,6 +4259,7 @@ void __wine_process_init(void)
|
||||
@@ -4478,6 +4504,7 @@ void __wine_process_init(void)
|
||||
's','y','s','t','e','m','3','2','\\',
|
||||
'k','e','r','n','e','l','3','2','.','d','l','l',0};
|
||||
RTL_USER_PROCESS_PARAMETERS *params;
|
||||
@@ -56,7 +56,7 @@ index 2f203447e..7c5dd308b 100644
|
||||
WINE_MODREF *wm;
|
||||
NTSTATUS status;
|
||||
ANSI_STRING func_name;
|
||||
@@ -4324,6 +4351,16 @@ void __wine_process_init(void)
|
||||
@@ -4575,6 +4602,16 @@ void __wine_process_init(void)
|
||||
|
||||
virtual_set_large_address_space();
|
||||
|
||||
@@ -71,10 +71,10 @@ index 2f203447e..7c5dd308b 100644
|
||||
+ }
|
||||
+
|
||||
/* the main exe needs to be the first in the load order list */
|
||||
RemoveEntryList( &wm->ldr.InLoadOrderModuleList );
|
||||
InsertHeadList( &peb->LdrData->InLoadOrderModuleList, &wm->ldr.InLoadOrderModuleList );
|
||||
RemoveEntryList( &wm->ldr.InLoadOrderLinks );
|
||||
InsertHeadList( &peb->LdrData->InLoadOrderModuleList, &wm->ldr.InLoadOrderLinks );
|
||||
diff --git a/server/process.c b/server/process.c
|
||||
index 4c7da9223..d6f71a774 100644
|
||||
index 4c7da9223c1..d6f71a774f3 100644
|
||||
--- a/server/process.c
|
||||
+++ b/server/process.c
|
||||
@@ -1107,6 +1107,14 @@ struct process_snapshot *process_snap( int *count )
|
||||
@@ -93,7 +93,7 @@ index 4c7da9223..d6f71a774 100644
|
||||
DECL_HANDLER(new_process)
|
||||
{
|
||||
diff --git a/server/process.h b/server/process.h
|
||||
index 5b83e111a..dfe5c4e52 100644
|
||||
index 5b83e111a6f..dfe5c4e52d8 100644
|
||||
--- a/server/process.h
|
||||
+++ b/server/process.h
|
||||
@@ -139,6 +139,7 @@ extern void kill_debugged_processes( struct thread *debugger, int exit_code );
|
||||
@@ -105,10 +105,10 @@ index 5b83e111a..dfe5c4e52 100644
|
||||
/* console functions */
|
||||
extern void inherit_console( struct thread *parent_thread, struct process *parent,
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 6022e1715..45ab670ea 100644
|
||||
index 68c66bc2fcb..55c821ac1e2 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3755,6 +3755,13 @@ struct handle_info
|
||||
@@ -3762,6 +3762,13 @@ struct handle_info
|
||||
@END
|
||||
|
||||
|
||||
@@ -123,10 +123,10 @@ index 6022e1715..45ab670ea 100644
|
||||
@REQ(create_completion)
|
||||
unsigned int access; /* desired access to a port */
|
||||
diff --git a/server/token.c b/server/token.c
|
||||
index fcab79955..181219d21 100644
|
||||
index 970ed1838da..1c1d49989b3 100644
|
||||
--- a/server/token.c
|
||||
+++ b/server/token.c
|
||||
@@ -1806,3 +1806,17 @@ DECL_HANDLER(create_token)
|
||||
@@ -1804,3 +1804,17 @@ DECL_HANDLER(create_token)
|
||||
release_object( token );
|
||||
}
|
||||
}
|
||||
@@ -145,5 +145,5 @@ index fcab79955..181219d21 100644
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.24.0
|
||||
2.26.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From c01cbb5811cb9de58a0c3fa7822382f45900b435 Mon Sep 17 00:00:00 2001
|
||||
From 929513c89e71d0675dd2c80a29ddf94f2c331dd8 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gofman <gofmanp@gmail.com>
|
||||
Date: Fri, 27 Sep 2019 16:26:04 +0300
|
||||
Subject: [PATCH] d3d11/tests: Add a basic test for drawing with deferred
|
||||
@@ -9,10 +9,10 @@ Subject: [PATCH] d3d11/tests: Add a basic test for drawing with deferred
|
||||
1 file changed, 81 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index 7f11a59d0cb..c63bae8bbab 100644
|
||||
index 214b9b164988..26c9f8555ff6 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -1692,10 +1692,11 @@ static void release_test_context_(unsigned int line, struct d3d11_test_context *
|
||||
@@ -1691,10 +1691,11 @@ static void release_test_context_(unsigned int line, struct d3d11_test_context *
|
||||
ok_(__FILE__, line)(!ref, "Device has %u references left.\n", ref);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ index 7f11a59d0cb..c63bae8bbab 100644
|
||||
{
|
||||
static const D3D11_INPUT_ELEMENT_DESC default_layout_desc[] =
|
||||
{
|
||||
@@ -1764,14 +1765,14 @@ static void draw_quad_vs_(unsigned int line, struct d3d11_test_context *context,
|
||||
@@ -1763,14 +1764,14 @@ static void draw_quad_vs_(unsigned int line, struct d3d11_test_context *context,
|
||||
if (!context->vb)
|
||||
context->vb = create_buffer(device, D3D11_BIND_VERTEX_BUFFER, sizeof(quad), quad);
|
||||
|
||||
@@ -47,7 +47,7 @@ index 7f11a59d0cb..c63bae8bbab 100644
|
||||
}
|
||||
|
||||
#define draw_quad_z(context, z) draw_quad_z_(__LINE__, context, z)
|
||||
@@ -1807,19 +1808,27 @@ static void draw_quad_z_(unsigned int line, struct d3d11_test_context *context,
|
||||
@@ -1806,19 +1807,27 @@ static void draw_quad_z_(unsigned int line, struct d3d11_test_context *context,
|
||||
(ID3D11Resource *)context->vs_cb, 0, NULL, &data, 0, 0);
|
||||
|
||||
ID3D11DeviceContext_VSSetConstantBuffers(context->immediate_context, 0, 1, &context->vs_cb);
|
||||
@@ -81,7 +81,7 @@ index 7f11a59d0cb..c63bae8bbab 100644
|
||||
{
|
||||
static const DWORD ps_color_code[] =
|
||||
{
|
||||
@@ -1856,12 +1865,12 @@ static void draw_color_quad_(unsigned int line, struct d3d11_test_context *conte
|
||||
@@ -1855,12 +1864,12 @@ static void draw_color_quad_(unsigned int line, struct d3d11_test_context *conte
|
||||
if (!context->ps_cb)
|
||||
context->ps_cb = create_buffer(device, D3D11_BIND_CONSTANT_BUFFER, sizeof(*color), NULL);
|
||||
|
||||
@@ -98,7 +98,7 @@ index 7f11a59d0cb..c63bae8bbab 100644
|
||||
}
|
||||
|
||||
static void test_create_device(void)
|
||||
@@ -2088,6 +2097,59 @@ static void test_create_device(void)
|
||||
@@ -2087,6 +2096,59 @@ static void test_create_device(void)
|
||||
DestroyWindow(window);
|
||||
}
|
||||
|
||||
@@ -158,19 +158,19 @@ index 7f11a59d0cb..c63bae8bbab 100644
|
||||
static void test_device_interfaces(const D3D_FEATURE_LEVEL feature_level)
|
||||
{
|
||||
struct device_desc device_desc;
|
||||
@@ -29639,11 +29701,11 @@ START_TEST(d3d11)
|
||||
@@ -30114,11 +30176,11 @@ START_TEST(d3d11)
|
||||
}
|
||||
|
||||
print_adapter_info();
|
||||
-
|
||||
queue_test(test_create_device);
|
||||
queue_for_each_feature_level(test_device_interfaces);
|
||||
queue_test(test_get_immediate_context);
|
||||
queue_test(test_immediate_context);
|
||||
queue_test(test_create_deferred_context);
|
||||
+ queue_test(test_draw_deferred_context);
|
||||
queue_test(test_create_texture1d);
|
||||
queue_test(test_texture1d_interfaces);
|
||||
queue_test(test_create_texture2d);
|
||||
--
|
||||
2.17.1
|
||||
2.26.2
|
||||
|
||||
|
@@ -1,64 +0,0 @@
|
||||
From cdcb9581d105a7964b06ca9c5525e28db25d6206 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Sun, 16 Jul 2017 17:39:28 +0200
|
||||
Subject: d3dx9_36/tests: Remove useless \n within some ok messages.
|
||||
|
||||
---
|
||||
dlls/d3dx9_36/tests/mesh.c | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/tests/mesh.c b/dlls/d3dx9_36/tests/mesh.c
|
||||
index 95dd06e4662..b1ab0aaf594 100644
|
||||
--- a/dlls/d3dx9_36/tests/mesh.c
|
||||
+++ b/dlls/d3dx9_36/tests/mesh.c
|
||||
@@ -10195,10 +10195,10 @@ static void test_clone_mesh(void)
|
||||
|
||||
hr = mesh->lpVtbl->CloneMesh(mesh, tc[i].clone_options, tc[i].new_declaration,
|
||||
test_context->device, &mesh_clone);
|
||||
- ok(hr == D3D_OK, "CloneMesh test case %d failed. Got %x\n, expected D3D_OK\n", i, hr);
|
||||
+ ok(hr == D3D_OK, "CloneMesh test case %d failed. Got %x, expected D3D_OK.\n", i, hr);
|
||||
|
||||
hr = mesh_clone->lpVtbl->GetDeclaration(mesh_clone, new_declaration);
|
||||
- ok(hr == D3D_OK, "GetDeclaration test case %d failed. Got %x\n, expected D3D_OK\n", i, hr);
|
||||
+ ok(hr == D3D_OK, "GetDeclaration test case %d failed. Got %x, expected D3D_OK.\n", i, hr);
|
||||
/* Check declaration elements */
|
||||
for (j = 0; tc[i].new_declaration[j].Stream != 0xFF; j++)
|
||||
{
|
||||
@@ -10385,7 +10385,7 @@ static void test_valid_mesh(void)
|
||||
|
||||
hr = D3DXValidMesh(mesh, tc[i].adjacency, &errors_and_warnings);
|
||||
todo_wine ok(hr == tc[i].exp_hr, "D3DXValidMesh test case %d failed. "
|
||||
- "Got %x\n, expected %x\n", i, hr, tc[i].exp_hr);
|
||||
+ "Got %x, expected %x.\n", i, hr, tc[i].exp_hr);
|
||||
|
||||
/* Note errors_and_warnings is deliberately not checked because that
|
||||
* would require copying wast amounts of the text output. */
|
||||
@@ -10529,7 +10529,7 @@ static void test_optimize_faces(void)
|
||||
tc[i].num_vertices, tc[i].indices_are_32bit,
|
||||
face_remap);
|
||||
ok(hr == D3D_OK, "D3DXOptimizeFaces test case %d failed. "
|
||||
- "Got %x\n, expected D3D_OK\n", i, hr);
|
||||
+ "Got %x, expected D3D_OK.\n", i, hr);
|
||||
|
||||
/* Compare face remap with expected face remap */
|
||||
for (j = 0; j < tc[i].num_faces; j++)
|
||||
@@ -10547,14 +10547,14 @@ static void test_optimize_faces(void)
|
||||
tc[0].num_vertices, tc[0].indices_are_32bit,
|
||||
NULL);
|
||||
ok(hr == D3DERR_INVALIDCALL, "D3DXOptimizeFaces passed NULL face_remap "
|
||||
- "pointer. Got %x\n, expected D3DERR_INVALIDCALL\n", hr);
|
||||
+ "pointer. Got %x, expected D3DERR_INVALIDCALL.\n", hr);
|
||||
|
||||
/* Number of faces must be smaller than 2^15 */
|
||||
hr = D3DXOptimizeFaces(tc[0].indices, 2 << 15,
|
||||
tc[0].num_vertices, FALSE,
|
||||
&smallest_face_remap);
|
||||
ok(hr == D3DERR_INVALIDCALL, "D3DXOptimizeFaces should not accept 2^15 "
|
||||
- "faces when using 16-bit indices. Got %x\n, expected D3DERR_INVALIDCALL\n", hr);
|
||||
+ "faces when using 16-bit indices. Got %x, expected D3DERR_INVALIDCALL.\n", hr);
|
||||
}
|
||||
|
||||
static HRESULT clear_normals(ID3DXMesh *mesh)
|
||||
--
|
||||
2.13.1
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From b17741a716e2633c02c2237eb424f126860a0c39 Mon Sep 17 00:00:00 2001
|
||||
From 30c01cb08a47b706a4ae49ddbd28f39cb065b5c9 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 6 Oct 2014 05:06:06 +0200
|
||||
Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
|
||||
@@ -9,7 +9,7 @@ Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dbghelp/Makefile.in b/dlls/dbghelp/Makefile.in
|
||||
index 076c50323dd..ddb69c96dd4 100644
|
||||
index 076c50323dda..ddb69c96dd42 100644
|
||||
--- a/dlls/dbghelp/Makefile.in
|
||||
+++ b/dlls/dbghelp/Makefile.in
|
||||
@@ -1,6 +1,6 @@
|
||||
@@ -21,17 +21,17 @@ index 076c50323dd..ddb69c96dd4 100644
|
||||
|
||||
EXTRADLLFLAGS = -mno-cygwin
|
||||
diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c
|
||||
index ab2a693ecaf..2add1025e39 100644
|
||||
index e44629f016e1..923608f35e31 100644
|
||||
--- a/dlls/dbghelp/elf_module.c
|
||||
+++ b/dlls/dbghelp/elf_module.c
|
||||
@@ -1436,6 +1436,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
|
||||
load_elf.elf_info = elf_info;
|
||||
|
||||
ret = search_unix_path(filename, getenv("LD_LIBRARY_PATH"), elf_load_file_cb, &load_elf)
|
||||
ret = search_unix_path(filename, process_getenv(pcs, L"LD_LIBRARY_PATH"), elf_load_file_cb, &load_elf)
|
||||
+ || search_unix_path(filename, BINDIR, elf_load_file_cb, &load_elf)
|
||||
|| search_dll_path(pcs, filename, elf_load_file_cb, &load_elf);
|
||||
}
|
||||
|
||||
--
|
||||
2.26.0
|
||||
2.26.2
|
||||
|
||||
|
@@ -1,235 +0,0 @@
|
||||
From 4c6b3da41feef98226bbfe14c2b0e88acf39807e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 25 Aug 2015 11:15:59 +0200
|
||||
Subject: ddraw/tests: Add more tests for IDirectDraw7::EnumSurfaces.
|
||||
|
||||
---
|
||||
dlls/ddraw/ddraw.c | 3 +
|
||||
dlls/ddraw/tests/d3d.c | 177 ++++++++++++++++++++++++++++++++++++++++++++++---
|
||||
2 files changed, 172 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
|
||||
index b3caba2..4b7a207 100644
|
||||
--- a/dlls/ddraw/ddraw.c
|
||||
+++ b/dlls/ddraw/ddraw.c
|
||||
@@ -3135,6 +3135,9 @@ static HRESULT WINAPI ddraw7_EnumSurfaces(IDirectDraw7 *iface, DWORD Flags,
|
||||
if (!Callback)
|
||||
return DDERR_INVALIDPARAMS;
|
||||
|
||||
+ if (!all && !DDSD)
|
||||
+ return DDERR_INVALIDPARAMS;
|
||||
+
|
||||
wined3d_mutex_lock();
|
||||
|
||||
/* Use the _SAFE enumeration, the app may destroy enumerated surfaces */
|
||||
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
|
||||
index ec4197a..e9c616e 100644
|
||||
--- a/dlls/ddraw/tests/d3d.c
|
||||
+++ b/dlls/ddraw/tests/d3d.c
|
||||
@@ -57,6 +57,12 @@ typedef struct {
|
||||
int total;
|
||||
} D3D7ECancelTest;
|
||||
|
||||
+typedef struct
|
||||
+{
|
||||
+ int found;
|
||||
+ int surfaces;
|
||||
+} EnumSurfaceTest;
|
||||
+
|
||||
#define MAX_ENUMERATION_COUNT 10
|
||||
typedef struct
|
||||
{
|
||||
@@ -85,17 +91,21 @@ static ULONG getRefcount(IUnknown *iface)
|
||||
|
||||
static HRESULT WINAPI SurfaceCounter(IDirectDrawSurface7 *surface, DDSURFACEDESC2 *desc, void *context)
|
||||
{
|
||||
- UINT *num = context;
|
||||
- (*num)++;
|
||||
- IDirectDrawSurface_Release(surface);
|
||||
+ EnumSurfaceTest *count = context;
|
||||
+ count->found++;
|
||||
+ if (surface)
|
||||
+ {
|
||||
+ count->surfaces++;
|
||||
+ IDirectDrawSurface_Release(surface);
|
||||
+ }
|
||||
return DDENUMRET_OK;
|
||||
}
|
||||
|
||||
static BOOL CreateDirect3D(void)
|
||||
{
|
||||
HRESULT rc;
|
||||
- DDSURFACEDESC2 ddsd;
|
||||
- UINT num;
|
||||
+ DDSURFACEDESC2 ddsd, ddsd2;
|
||||
+ EnumSurfaceTest count;
|
||||
|
||||
rc = pDirectDrawCreateEx(NULL, (void**)&lpDD,
|
||||
&IID_IDirectDraw7, NULL);
|
||||
@@ -122,9 +132,160 @@ static BOOL CreateDirect3D(void)
|
||||
if (FAILED(rc))
|
||||
return FALSE;
|
||||
|
||||
- num = 0;
|
||||
- IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_ALL | DDENUMSURFACES_DOESEXIST, NULL, &num, SurfaceCounter);
|
||||
- ok(num == 1, "Has %d surfaces, expected 1\n", num);
|
||||
+ memset(&ddsd2, 0, sizeof(ddsd2));
|
||||
+ ddsd2.dwSize = sizeof(ddsd2);
|
||||
+ ddsd2.dwFlags = DDSD_WIDTH | DDSD_HEIGHT;
|
||||
+ ddsd2.dwWidth = 256;
|
||||
+ ddsd2.dwHeight = 256;
|
||||
+
|
||||
+ /* without search type flags */
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, 0, NULL, &count, SurfaceCounter);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, 0, &ddsd, &count, SurfaceCounter);
|
||||
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_ALL, NULL, &count, SurfaceCounter);
|
||||
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_MATCH, NULL, &count, SurfaceCounter);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_NOMATCH, NULL, &count, SurfaceCounter);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ /* search type DDENUMSURFACES_DOESEXIST */
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST, NULL, &count, SurfaceCounter);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST, &ddsd, &count, SurfaceCounter);
|
||||
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST, &ddsd2, &count, SurfaceCounter);
|
||||
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
|
||||
+ ok(count.surfaces == 1, "Has %d surfaces, expected 1\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_ALL,
|
||||
+ NULL, &count, SurfaceCounter);
|
||||
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
|
||||
+ ok(count.surfaces == 1, "Has %d surfaces, expected 1\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_MATCH,
|
||||
+ &ddsd, &count, SurfaceCounter);
|
||||
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_NOMATCH,
|
||||
+ &ddsd, &count, SurfaceCounter);
|
||||
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
|
||||
+ ok(count.surfaces == 1, "Has %d surfaces, expected 1\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_MATCH,
|
||||
+ &ddsd2, &count, SurfaceCounter);
|
||||
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
|
||||
+ ok(count.surfaces == 1, "Has %d surfaces, expected 1\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_NOMATCH,
|
||||
+ &ddsd2, &count, SurfaceCounter);
|
||||
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_ALL |
|
||||
+ DDENUMSURFACES_MATCH, NULL, &count, SurfaceCounter);
|
||||
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_ALL |
|
||||
+ DDENUMSURFACES_NOMATCH, NULL, &count, SurfaceCounter);
|
||||
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_MATCH |
|
||||
+ DDENUMSURFACES_NOMATCH, NULL, &count, SurfaceCounter);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ /* search type DDENUMSURFACES_CANBECREATED */
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED, &ddsd, &count, SurfaceCounter);
|
||||
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_ALL,
|
||||
+ &ddsd, &count, SurfaceCounter);
|
||||
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_NOMATCH,
|
||||
+ &ddsd, &count, SurfaceCounter);
|
||||
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_MATCH,
|
||||
+ NULL, &count, SurfaceCounter);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_MATCH,
|
||||
+ &ddsd, &count, SurfaceCounter);
|
||||
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
+ todo_wine ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+
|
||||
+ /* combination of DDENUMSURFACES_DOESEXIST and DDENUMSURFACES_CANBECREATED */
|
||||
+ count.found = count.surfaces = 0;
|
||||
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_CANBECREATED |
|
||||
+ DDENUMSURFACES_MATCH, &ddsd, &count, SurfaceCounter);
|
||||
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
+ todo_wine ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
memset(&ddsd, 0, sizeof(ddsd));
|
||||
ddsd.dwSize = sizeof(ddsd);
|
||||
--
|
||||
2.5.0
|
||||
|
@@ -1,248 +0,0 @@
|
||||
From 5dcbd836e663da908a9a39b5791da65d64a00eb8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 25 Aug 2015 11:17:07 +0200
|
||||
Subject: ddraw: Implement DDENUMSURFACES_CANBECREATED flag in
|
||||
ddraw7_EnumSurfaces.
|
||||
|
||||
Also fixes various test failures related to DDENUMSURFACES_DOESEXIST.
|
||||
|
||||
The "Unexpected destination texture level pixels" testfailure on the w8 VM is not related to this patch.
|
||||
---
|
||||
dlls/ddraw/ddraw.c | 98 +++++++++++++++++++++++++++++++++++++-------------
|
||||
dlls/ddraw/tests/d3d.c | 42 +++++++++++-----------
|
||||
2 files changed, 94 insertions(+), 46 deletions(-)
|
||||
|
||||
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
|
||||
index 4b7a207..19ed213 100644
|
||||
--- a/dlls/ddraw/ddraw.c
|
||||
+++ b/dlls/ddraw/ddraw.c
|
||||
@@ -3122,49 +3122,97 @@ static HRESULT WINAPI ddraw7_EnumSurfaces(IDirectDraw7 *iface, DWORD Flags,
|
||||
{
|
||||
struct ddraw *ddraw = impl_from_IDirectDraw7(iface);
|
||||
struct ddraw_surface *surf;
|
||||
- BOOL all, nomatch;
|
||||
- DDSURFACEDESC2 desc;
|
||||
- struct list *entry, *entry2;
|
||||
+ DWORD match_flags = Flags & (DDENUMSURFACES_ALL | DDENUMSURFACES_NOMATCH | DDENUMSURFACES_MATCH);
|
||||
|
||||
TRACE("iface %p, flags %#x, surface_desc %p, context %p, callback %p.\n",
|
||||
iface, Flags, DDSD, Context, Callback);
|
||||
|
||||
- all = Flags & DDENUMSURFACES_ALL;
|
||||
- nomatch = Flags & DDENUMSURFACES_NOMATCH;
|
||||
-
|
||||
if (!Callback)
|
||||
return DDERR_INVALIDPARAMS;
|
||||
|
||||
- if (!all && !DDSD)
|
||||
- return DDERR_INVALIDPARAMS;
|
||||
+ if (Flags & DDENUMSURFACES_CANBECREATED)
|
||||
+ {
|
||||
+ IDirectDrawSurface7 *surface;
|
||||
+ DDSURFACEDESC2 testdesc;
|
||||
+ HRESULT hr;
|
||||
|
||||
- wined3d_mutex_lock();
|
||||
+ if (match_flags != DDENUMSURFACES_MATCH)
|
||||
+ return DDERR_INVALIDPARAMS;
|
||||
|
||||
- /* Use the _SAFE enumeration, the app may destroy enumerated surfaces */
|
||||
- LIST_FOR_EACH_SAFE(entry, entry2, &ddraw->surface_list)
|
||||
- {
|
||||
- surf = LIST_ENTRY(entry, struct ddraw_surface, surface_list_entry);
|
||||
+ if (!DDSD)
|
||||
+ return DDERR_INVALIDPARAMS;
|
||||
+
|
||||
+ memcpy(&testdesc, DDSD, sizeof(testdesc));
|
||||
+ if (!(testdesc.dwFlags & DDSD_WIDTH))
|
||||
+ {
|
||||
+ testdesc.dwFlags |= DDSD_WIDTH;
|
||||
+ testdesc.dwWidth = 512;
|
||||
+ }
|
||||
+ if (!(testdesc.dwFlags & DDSD_HEIGHT))
|
||||
+ {
|
||||
+ testdesc.dwFlags |= DDSD_HEIGHT;
|
||||
+ testdesc.dwHeight = 512;
|
||||
+ }
|
||||
|
||||
- if (!surf->iface_count)
|
||||
+ hr = IDirectDraw7_CreateSurface(iface, &testdesc, &surface, NULL);
|
||||
+ if (SUCCEEDED(hr))
|
||||
{
|
||||
- WARN("Not enumerating surface %p because it doesn't have any references.\n", surf);
|
||||
- continue;
|
||||
+ surf = unsafe_impl_from_IDirectDrawSurface7(surface);
|
||||
+ Callback(NULL, &surf->surface_desc, Context);
|
||||
+ IDirectDrawSurface7_Release(surface);
|
||||
}
|
||||
+ else
|
||||
+ ERR("Failed to create surface, hr %#x.\n", hr);
|
||||
+ }
|
||||
+ else if (Flags & DDENUMSURFACES_DOESEXIST)
|
||||
+ {
|
||||
+ BOOL all, nomatch;
|
||||
+ DDSURFACEDESC2 desc;
|
||||
+ struct list *entry, *entry2;
|
||||
+
|
||||
+ /* a combination of match flags is not allowed */
|
||||
+ if (match_flags != 0 &&
|
||||
+ match_flags != DDENUMSURFACES_ALL &&
|
||||
+ match_flags != DDENUMSURFACES_MATCH &&
|
||||
+ match_flags != DDENUMSURFACES_NOMATCH)
|
||||
+ return DDERR_INVALIDPARAMS;
|
||||
+
|
||||
+ all = (Flags & DDENUMSURFACES_ALL) != 0;
|
||||
+ nomatch = (Flags & DDENUMSURFACES_NOMATCH) != 0;
|
||||
+
|
||||
+ if (!all && !DDSD)
|
||||
+ return DDERR_INVALIDPARAMS;
|
||||
|
||||
- if (all || (nomatch != ddraw_match_surface_desc(DDSD, &surf->surface_desc)))
|
||||
+ wined3d_mutex_lock();
|
||||
+
|
||||
+ /* Use the _SAFE enumeration, the app may destroy enumerated surfaces */
|
||||
+ LIST_FOR_EACH_SAFE(entry, entry2, &ddraw->surface_list)
|
||||
{
|
||||
- TRACE("Enumerating surface %p.\n", surf);
|
||||
- desc = surf->surface_desc;
|
||||
- IDirectDrawSurface7_AddRef(&surf->IDirectDrawSurface7_iface);
|
||||
- if (Callback(&surf->IDirectDrawSurface7_iface, &desc, Context) != DDENUMRET_OK)
|
||||
+ surf = LIST_ENTRY(entry, struct ddraw_surface, surface_list_entry);
|
||||
+
|
||||
+ if (!surf->iface_count)
|
||||
{
|
||||
- wined3d_mutex_unlock();
|
||||
- return DD_OK;
|
||||
+ WARN("Not enumerating surface %p because it doesn't have any references.\n", surf);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (all || (nomatch != ddraw_match_surface_desc(DDSD, &surf->surface_desc)))
|
||||
+ {
|
||||
+ TRACE("Enumerating surface %p.\n", surf);
|
||||
+ desc = surf->surface_desc;
|
||||
+ IDirectDrawSurface7_AddRef(&surf->IDirectDrawSurface7_iface);
|
||||
+ if (Callback(&surf->IDirectDrawSurface7_iface, &desc, Context) != DDENUMRET_OK)
|
||||
+ {
|
||||
+ wined3d_mutex_unlock();
|
||||
+ return DD_OK;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
- }
|
||||
|
||||
- wined3d_mutex_unlock();
|
||||
+ wined3d_mutex_unlock();
|
||||
+ }
|
||||
+ else
|
||||
+ return DDERR_INVALIDPARAMS;
|
||||
|
||||
return DD_OK;
|
||||
}
|
||||
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
|
||||
index e9c616e..930460f 100644
|
||||
--- a/dlls/ddraw/tests/d3d.c
|
||||
+++ b/dlls/ddraw/tests/d3d.c
|
||||
@@ -147,15 +147,15 @@ static BOOL CreateDirect3D(void)
|
||||
|
||||
count.found = count.surfaces = 0;
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, 0, &ddsd, &count, SurfaceCounter);
|
||||
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
count.found = count.surfaces = 0;
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_ALL, NULL, &count, SurfaceCounter);
|
||||
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
count.found = count.surfaces = 0;
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_MATCH, NULL, &count, SurfaceCounter);
|
||||
@@ -220,22 +220,22 @@ static BOOL CreateDirect3D(void)
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_NOMATCH,
|
||||
&ddsd2, &count, SurfaceCounter);
|
||||
ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
count.found = count.surfaces = 0;
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_ALL |
|
||||
DDENUMSURFACES_MATCH, NULL, &count, SurfaceCounter);
|
||||
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
count.found = count.surfaces = 0;
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_ALL |
|
||||
DDENUMSURFACES_NOMATCH, NULL, &count, SurfaceCounter);
|
||||
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
count.found = count.surfaces = 0;
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_MATCH |
|
||||
@@ -247,23 +247,23 @@ static BOOL CreateDirect3D(void)
|
||||
/* search type DDENUMSURFACES_CANBECREATED */
|
||||
count.found = count.surfaces = 0;
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED, &ddsd, &count, SurfaceCounter);
|
||||
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
count.found = count.surfaces = 0;
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_ALL,
|
||||
&ddsd, &count, SurfaceCounter);
|
||||
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
count.found = count.surfaces = 0;
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_NOMATCH,
|
||||
&ddsd, &count, SurfaceCounter);
|
||||
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
|
||||
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
|
||||
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
count.found = count.surfaces = 0;
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_MATCH,
|
||||
@@ -276,7 +276,7 @@ static BOOL CreateDirect3D(void)
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_MATCH,
|
||||
&ddsd, &count, SurfaceCounter);
|
||||
ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
- todo_wine ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
|
||||
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
|
||||
ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
/* combination of DDENUMSURFACES_DOESEXIST and DDENUMSURFACES_CANBECREATED */
|
||||
@@ -284,7 +284,7 @@ static BOOL CreateDirect3D(void)
|
||||
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_CANBECREATED |
|
||||
DDENUMSURFACES_MATCH, &ddsd, &count, SurfaceCounter);
|
||||
ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
|
||||
- todo_wine ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
|
||||
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
|
||||
ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
|
||||
|
||||
memset(&ddsd, 0, sizeof(ddsd));
|
||||
--
|
||||
2.5.0
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [17233] Implement DDENUMSURFACES_CANBECREATED in IDirectDraw7::EnumSurfaces
|
@@ -1,4 +1,4 @@
|
||||
From a6f14f05fefc9510f673b47092cbc62a2366ccf9 Mon Sep 17 00:00:00 2001
|
||||
From 17363db79c4a12613236ef88386b2294920cc9bc Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gofman <gofmanp@gmail.com>
|
||||
Date: Thu, 4 Apr 2019 02:25:00 +0300
|
||||
Subject: [PATCH] ddraw: Allow setting texture without DDSCAPS_TEXTURE for
|
||||
@@ -11,10 +11,10 @@ Signed-off-by: Paul Gofman <gofmanp@gmail.com>
|
||||
2 files changed, 141 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
|
||||
index 11e60f80c..324475303 100644
|
||||
index 5bd5b2c70911..010fed303969 100644
|
||||
--- a/dlls/ddraw/device.c
|
||||
+++ b/dlls/ddraw/device.c
|
||||
@@ -4798,7 +4798,8 @@ static HRESULT d3d_device7_SetTexture(IDirect3DDevice7 *iface,
|
||||
@@ -4776,7 +4776,8 @@ static HRESULT d3d_device7_SetTexture(IDirect3DDevice7 *iface,
|
||||
struct ddraw_surface *surf = unsafe_impl_from_IDirectDrawSurface7(texture);
|
||||
struct wined3d_texture *wined3d_texture = NULL;
|
||||
|
||||
@@ -24,7 +24,7 @@ index 11e60f80c..324475303 100644
|
||||
|
||||
if (surf && (surf->surface_desc.ddsCaps.dwCaps & DDSCAPS_TEXTURE))
|
||||
wined3d_texture = surf->wined3d_texture;
|
||||
@@ -4834,19 +4835,30 @@ static HRESULT WINAPI d3d_device3_SetTexture(IDirect3DDevice3 *iface,
|
||||
@@ -4812,19 +4813,30 @@ static HRESULT WINAPI d3d_device3_SetTexture(IDirect3DDevice3 *iface,
|
||||
{
|
||||
struct d3d_device *device = impl_from_IDirect3DDevice3(iface);
|
||||
struct ddraw_surface *tex = unsafe_impl_from_IDirect3DTexture2(texture);
|
||||
@@ -59,10 +59,10 @@ index 11e60f80c..324475303 100644
|
||||
|
||||
static const struct tss_lookup
|
||||
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
|
||||
index e1d5bac18..e18f3c638 100644
|
||||
index 5dc2b4e7e527..d0a1f59c0a59 100644
|
||||
--- a/dlls/ddraw/tests/ddraw4.c
|
||||
+++ b/dlls/ddraw/tests/ddraw4.c
|
||||
@@ -330,7 +330,7 @@ static IDirectDraw4 *create_ddraw(void)
|
||||
@@ -359,7 +359,7 @@ static IDirectDraw4 *create_ddraw(void)
|
||||
return ddraw4;
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ index e1d5bac18..e18f3c638 100644
|
||||
{
|
||||
IDirectDrawSurface4 *surface, *ds;
|
||||
IDirect3DDevice3 *device = NULL;
|
||||
@@ -350,6 +350,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
@@ -379,6 +379,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
surface_desc.dwSize = sizeof(surface_desc);
|
||||
surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
|
||||
surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE;
|
||||
@@ -80,7 +80,7 @@ index e1d5bac18..e18f3c638 100644
|
||||
surface_desc.dwWidth = 640;
|
||||
surface_desc.dwHeight = 480;
|
||||
|
||||
@@ -378,7 +380,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
@@ -407,7 +409,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
}
|
||||
|
||||
memset(&z_fmt, 0, sizeof(z_fmt));
|
||||
@@ -90,7 +90,7 @@ index e1d5bac18..e18f3c638 100644
|
||||
if (FAILED(hr) || !z_fmt.dwSize)
|
||||
{
|
||||
IDirect3D3_Release(d3d3);
|
||||
@@ -390,6 +393,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
@@ -419,6 +422,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
surface_desc.dwSize = sizeof(surface_desc);
|
||||
surface_desc.dwFlags = DDSD_CAPS | DDSD_PIXELFORMAT | DDSD_WIDTH | DDSD_HEIGHT;
|
||||
surface_desc.ddsCaps.dwCaps = DDSCAPS_ZBUFFER;
|
||||
@@ -99,7 +99,7 @@ index e1d5bac18..e18f3c638 100644
|
||||
U4(surface_desc).ddpfPixelFormat = z_fmt;
|
||||
surface_desc.dwWidth = 640;
|
||||
surface_desc.dwHeight = 480;
|
||||
@@ -412,7 +417,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
@@ -441,7 +446,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ index e1d5bac18..e18f3c638 100644
|
||||
IDirect3D3_Release(d3d3);
|
||||
IDirectDrawSurface4_Release(surface);
|
||||
if (FAILED(hr))
|
||||
@@ -421,6 +427,11 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
@@ -450,6 +456,11 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
return device;
|
||||
}
|
||||
|
||||
@@ -121,8 +121,8 @@ index e1d5bac18..e18f3c638 100644
|
||||
static IDirect3DViewport3 *create_viewport(IDirect3DDevice3 *device, UINT x, UINT y, UINT w, UINT h)
|
||||
{
|
||||
IDirect3DViewport3 *viewport;
|
||||
@@ -16980,6 +16991,116 @@ static void test_surface_format_conversion_alpha(void)
|
||||
DestroyWindow(window);
|
||||
@@ -17530,6 +17541,116 @@ static void test_get_display_mode(void)
|
||||
EnumDisplayMonitors(NULL, NULL, test_get_display_mode_cb, 0);
|
||||
}
|
||||
|
||||
+static void test_texture_wrong_caps_(BOOL software)
|
||||
@@ -238,7 +238,7 @@ index e1d5bac18..e18f3c638 100644
|
||||
START_TEST(ddraw4)
|
||||
{
|
||||
DDDEVICEIDENTIFIER identifier;
|
||||
@@ -17112,6 +17233,7 @@ START_TEST(ddraw4)
|
||||
@@ -17662,6 +17783,7 @@ START_TEST(ddraw4)
|
||||
test_gdi_surface();
|
||||
test_alphatest();
|
||||
test_clipper_refcount();
|
||||
@@ -247,5 +247,5 @@ index e1d5bac18..e18f3c638 100644
|
||||
test_d32_support();
|
||||
test_surface_format_conversion_alpha();
|
||||
--
|
||||
2.25.1
|
||||
2.26.2
|
||||
|
||||
|
@@ -1,45 +0,0 @@
|
||||
From 9ac9e58e5c76a02e3746c4e4bd16b43766b35066 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 2 Oct 2015 17:29:43 +0200
|
||||
Subject: ddraw: Remove const from ddraw1_vtbl and ddraw_surface1_vtbl.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Bad Mojo Redux tries to hook ddraw1 and expects both interfaces to be writable.
|
||||
|
||||
Signed-off-by: Michael MĂĽller <michael@fds-team.de>
|
||||
---
|
||||
dlls/ddraw/ddraw.c | 2 +-
|
||||
dlls/ddraw/surface.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
|
||||
index c94bfee..bcb1608 100644
|
||||
--- a/dlls/ddraw/ddraw.c
|
||||
+++ b/dlls/ddraw/ddraw.c
|
||||
@@ -4494,7 +4494,7 @@ static const struct IDirectDraw2Vtbl ddraw2_vtbl =
|
||||
ddraw2_GetAvailableVidMem,
|
||||
};
|
||||
|
||||
-static const struct IDirectDrawVtbl ddraw1_vtbl =
|
||||
+static struct IDirectDrawVtbl ddraw1_vtbl =
|
||||
{
|
||||
/* IUnknown */
|
||||
ddraw1_QueryInterface,
|
||||
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
|
||||
index 6b6ddb9..71bcba4 100644
|
||||
--- a/dlls/ddraw/surface.c
|
||||
+++ b/dlls/ddraw/surface.c
|
||||
@@ -5421,7 +5421,7 @@ static const struct IDirectDrawSurface2Vtbl ddraw_surface2_vtbl =
|
||||
ddraw_surface2_PageUnlock,
|
||||
};
|
||||
|
||||
-static const struct IDirectDrawSurfaceVtbl ddraw_surface1_vtbl =
|
||||
+static struct IDirectDrawSurfaceVtbl ddraw_surface1_vtbl =
|
||||
{
|
||||
/* IUnknown */
|
||||
ddraw_surface1_QueryInterface,
|
||||
--
|
||||
2.5.1
|
||||
|
@@ -1,67 +0,0 @@
|
||||
From 4d068ed386b282bc2fc30c13ba0845dfa6f135ef Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Wed, 3 Apr 2019 10:36:47 +1100
|
||||
Subject: [PATCH] ddraw: Allow writing to vtable for surface and palette
|
||||
|
||||
Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=46949
|
||||
---
|
||||
dlls/ddraw/palette.c | 2 +-
|
||||
dlls/ddraw/surface.c | 8 ++++----
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/ddraw/palette.c b/dlls/ddraw/palette.c
|
||||
index 87aec96443a..7cfd662f2ec 100644
|
||||
--- a/dlls/ddraw/palette.c
|
||||
+++ b/dlls/ddraw/palette.c
|
||||
@@ -218,7 +218,7 @@ static HRESULT WINAPI ddraw_palette_GetEntries(IDirectDrawPalette *iface,
|
||||
return hr;
|
||||
}
|
||||
|
||||
-static const struct IDirectDrawPaletteVtbl ddraw_palette_vtbl =
|
||||
+static struct IDirectDrawPaletteVtbl ddraw_palette_vtbl =
|
||||
{
|
||||
/*** IUnknown ***/
|
||||
ddraw_palette_QueryInterface,
|
||||
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
|
||||
index 8820f211852..9c9cdb358bf 100644
|
||||
--- a/dlls/ddraw/surface.c
|
||||
+++ b/dlls/ddraw/surface.c
|
||||
@@ -5399,7 +5399,7 @@ static HRESULT WINAPI d3d_texture1_Load(IDirect3DTexture *iface, IDirect3DTextur
|
||||
* The VTable
|
||||
*****************************************************************************/
|
||||
|
||||
-static const struct IDirectDrawSurface7Vtbl ddraw_surface7_vtbl =
|
||||
+static struct IDirectDrawSurface7Vtbl ddraw_surface7_vtbl =
|
||||
{
|
||||
/* IUnknown */
|
||||
ddraw_surface7_QueryInterface,
|
||||
@@ -5458,7 +5458,7 @@ static const struct IDirectDrawSurface7Vtbl ddraw_surface7_vtbl =
|
||||
ddraw_surface7_GetLOD,
|
||||
};
|
||||
|
||||
-static const struct IDirectDrawSurface4Vtbl ddraw_surface4_vtbl =
|
||||
+static struct IDirectDrawSurface4Vtbl ddraw_surface4_vtbl =
|
||||
{
|
||||
/* IUnknown */
|
||||
ddraw_surface4_QueryInterface,
|
||||
@@ -5512,7 +5512,7 @@ static const struct IDirectDrawSurface4Vtbl ddraw_surface4_vtbl =
|
||||
ddraw_surface4_ChangeUniquenessValue,
|
||||
};
|
||||
|
||||
-static const struct IDirectDrawSurface3Vtbl ddraw_surface3_vtbl =
|
||||
+static struct IDirectDrawSurface3Vtbl ddraw_surface3_vtbl =
|
||||
{
|
||||
/* IUnknown */
|
||||
ddraw_surface3_QueryInterface,
|
||||
@@ -5560,7 +5560,7 @@ static const struct IDirectDrawSurface3Vtbl ddraw_surface3_vtbl =
|
||||
ddraw_surface3_SetSurfaceDesc,
|
||||
};
|
||||
|
||||
-static const struct IDirectDrawSurface2Vtbl ddraw_surface2_vtbl =
|
||||
+static struct IDirectDrawSurface2Vtbl ddraw_surface2_vtbl =
|
||||
{
|
||||
/* IUnknown */
|
||||
ddraw_surface2_QueryInterface,
|
||||
--
|
||||
2.20.1
|
||||
|
@@ -1,2 +0,0 @@
|
||||
Fixes: [39534] Make ddraw1 and ddraw_surface1 vtable as writable.
|
||||
Fixes: [46949] Make ddraw[2-7] and palette vtable as writable.
|
@@ -1,4 +1,4 @@
|
||||
From 43baedbee4f25d88f8af30c216b888f5161e62df Mon Sep 17 00:00:00 2001
|
||||
From f75d03835dd04b2838a2cdcde64346efc26e9972 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Thu, 7 Jun 2018 20:29:21 -0500
|
||||
Subject: [PATCH] ntdll: Create eventfd-based objects for semaphores.
|
||||
@@ -16,10 +16,10 @@ This patch break things, of course. That is fine. Its purpose is to prevent a Ma
|
||||
create mode 100644 dlls/ntdll/esync.h
|
||||
|
||||
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
|
||||
index ed4bb94e4dc..b75e8308ac7 100644
|
||||
index 7971ef98cf0..2f26f0dc958 100644
|
||||
--- a/dlls/ntdll/Makefile.in
|
||||
+++ b/dlls/ntdll/Makefile.in
|
||||
@@ -15,6 +15,7 @@ C_SRCS = \
|
||||
@@ -17,6 +17,7 @@ C_SRCS = \
|
||||
directory.c \
|
||||
env.c \
|
||||
error.c \
|
||||
@@ -213,10 +213,10 @@ index 00000000000..1a88170cfc4
|
||||
+ * "server_fd_section" or something similar. */
|
||||
+extern RTL_CRITICAL_SECTION fd_cache_section;
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index 11463146da0..a370256245c 100644
|
||||
index 177d4fd9e44..51c067bb8a0 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -106,6 +106,7 @@ extern unsigned int server_queue_process_apc( HANDLE process, const apc_call_t *
|
||||
@@ -136,6 +136,7 @@ extern unsigned int server_queue_process_apc( HANDLE process, const apc_call_t *
|
||||
extern int server_remove_fd_from_cache( HANDLE handle ) DECLSPEC_HIDDEN;
|
||||
extern int server_get_unix_fd( HANDLE handle, unsigned int access, int *unix_fd,
|
||||
int *needs_close, enum server_fd_type *type, unsigned int *options ) DECLSPEC_HIDDEN;
|
||||
@@ -225,18 +225,18 @@ index 11463146da0..a370256245c 100644
|
||||
extern NTSTATUS alloc_object_attributes( const OBJECT_ATTRIBUTES *attr, struct object_attributes **ret,
|
||||
data_size_t *ret_len ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
|
||||
index 43dfe9303bb..46f1cae3f1f 100644
|
||||
index 973804967d1..c240bd1d9f8 100644
|
||||
--- a/dlls/ntdll/server.c
|
||||
+++ b/dlls/ntdll/server.c
|
||||
@@ -81,6 +81,7 @@
|
||||
#include "wine/server.h"
|
||||
@@ -98,6 +98,7 @@
|
||||
#include "wine/debug.h"
|
||||
#include "ntdll_misc.h"
|
||||
#include "ddk/wdm.h"
|
||||
+#include "esync.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(server);
|
||||
WINE_DECLARE_DEBUG_CHANNEL(winediag);
|
||||
@@ -120,14 +121,14 @@ sigset_t server_block_set; /* signals to block during server calls */
|
||||
@@ -170,14 +171,14 @@ sigset_t server_block_set; /* signals to block during server calls */
|
||||
static int fd_socket = -1; /* socket to exchange file descriptors with the server */
|
||||
static pid_t server_pid;
|
||||
|
||||
@@ -253,7 +253,7 @@ index 43dfe9303bb..46f1cae3f1f 100644
|
||||
|
||||
/* atomically exchange a 64-bit value */
|
||||
static inline LONG64 interlocked_xchg64( LONG64 *dest, LONG64 val )
|
||||
@@ -764,7 +765,7 @@ void CDECL wine_server_send_fd( int fd )
|
||||
@@ -919,7 +920,7 @@ void CDECL wine_server_send_fd( int fd )
|
||||
*
|
||||
* Receive a file descriptor passed from the server.
|
||||
*/
|
||||
@@ -263,7 +263,7 @@ index 43dfe9303bb..46f1cae3f1f 100644
|
||||
struct iovec vec;
|
||||
struct msghdr msghdr;
|
||||
diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c
|
||||
index 8974c7ed907..3939ce1ba78 100644
|
||||
index fbfb8f893ec..74dbde017e8 100644
|
||||
--- a/dlls/ntdll/sync.c
|
||||
+++ b/dlls/ntdll/sync.c
|
||||
@@ -59,7 +59,9 @@
|
||||
@@ -276,7 +276,7 @@ index 8974c7ed907..3939ce1ba78 100644
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(sync);
|
||||
|
||||
@@ -249,6 +251,9 @@ NTSTATUS WINAPI NtCreateSemaphore( OUT PHANDLE SemaphoreHandle,
|
||||
@@ -259,6 +261,9 @@ NTSTATUS WINAPI NtCreateSemaphore( OUT PHANDLE SemaphoreHandle,
|
||||
if (MaximumCount <= 0 || InitialCount < 0 || InitialCount > MaximumCount)
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
|
||||
@@ -287,5 +287,5 @@ index 8974c7ed907..3939ce1ba78 100644
|
||||
|
||||
SERVER_START_REQ( create_semaphore )
|
||||
--
|
||||
2.20.1
|
||||
2.26.2
|
||||
|
||||
|
@@ -82,7 +82,7 @@ index da35bdf85..2bb85d910 100644
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ obj = interlocked_xchg_ptr((void **)&esync_list[entry][idx], obj);
|
||||
+ obj = InterlockedExchangePointer((void **)&esync_list[entry][idx], obj);
|
||||
+ assert(!obj);
|
||||
+ return TRUE;
|
||||
+}
|
||||
|
@@ -26,7 +26,7 @@ index bca95b9b2d9..f7a427425b7 100644
|
||||
+
|
||||
+ if (entry < ESYNC_LIST_ENTRIES && esync_list[entry])
|
||||
+ {
|
||||
+ if ((obj = interlocked_xchg_ptr( (void **)&esync_list[entry][idx], 0 )))
|
||||
+ if ((obj = InterlockedExchangePointer( (void **)&esync_list[entry][idx], 0 )))
|
||||
+ {
|
||||
+ close( obj->fd );
|
||||
+ RtlFreeHeap( GetProcessHeap(), 0, obj );
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
From 08285be7bf233a38a95b0902c6bac9b24e1fe34f Mon Sep 17 00:00:00 2001
|
||||
From 5209675d0aac52f20b5af95ef39f85f000b79434 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Fri, 8 Jun 2018 22:04:29 -0500
|
||||
Subject: [PATCH] server: Create eventfd file descriptors for thread objects.
|
||||
@@ -9,7 +9,7 @@ Subject: [PATCH] server: Create eventfd file descriptors for thread objects.
|
||||
2 files changed, 16 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/server/thread.c b/server/thread.c
|
||||
index f5bf4a8d2..b3da4a2f4 100644
|
||||
index dd94522a2b9..5c52cca0923 100644
|
||||
--- a/server/thread.c
|
||||
+++ b/server/thread.c
|
||||
@@ -133,6 +133,7 @@ static const struct object_ops thread_apc_ops =
|
||||
@@ -29,15 +29,15 @@ index f5bf4a8d2..b3da4a2f4 100644
|
||||
no_satisfied, /* satisfied */
|
||||
no_signal, /* signal */
|
||||
no_get_fd, /* get_fd */
|
||||
@@ -186,6 +187,7 @@ static inline void init_thread_structure( struct thread *thread )
|
||||
thread->suspend_context = NULL;
|
||||
@@ -185,6 +186,7 @@ static inline void init_thread_structure( struct thread *thread )
|
||||
thread->context = NULL;
|
||||
thread->teb = 0;
|
||||
thread->entry_point = 0;
|
||||
+ thread->esync_fd = -1;
|
||||
thread->debug_ctx = NULL;
|
||||
thread->system_regs = 0;
|
||||
thread->queue = NULL;
|
||||
@@ -292,6 +294,9 @@ struct thread *create_thread( int fd, struct process *process, const struct secu
|
||||
@@ -293,6 +295,9 @@ struct thread *create_thread( int fd, struct process *process, const struct secu
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ index f5bf4a8d2..b3da4a2f4 100644
|
||||
set_fd_events( thread->request_fd, POLLIN ); /* start listening to events */
|
||||
add_process_thread( thread->process, thread );
|
||||
return thread;
|
||||
@@ -370,6 +375,9 @@ static void destroy_thread( struct object *obj )
|
||||
@@ -373,6 +378,9 @@ static void destroy_thread( struct object *obj )
|
||||
if (thread->exit_poll) remove_timeout_user( thread->exit_poll );
|
||||
if (thread->id) free_ptid( thread->id );
|
||||
if (thread->token) release_object( thread->token );
|
||||
@@ -57,7 +57,7 @@ index f5bf4a8d2..b3da4a2f4 100644
|
||||
}
|
||||
|
||||
/* dump a thread on stdout for debugging purposes */
|
||||
@@ -395,6 +403,12 @@ static int thread_signaled( struct object *obj, struct wait_queue_entry *entry )
|
||||
@@ -398,6 +406,12 @@ static int thread_signaled( struct object *obj, struct wait_queue_entry *entry )
|
||||
return mythread->state == TERMINATED && !mythread->exit_poll;
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ index f5bf4a8d2..b3da4a2f4 100644
|
||||
{
|
||||
if (access & GENERIC_READ) access |= STANDARD_RIGHTS_READ | THREAD_QUERY_INFORMATION | THREAD_GET_CONTEXT;
|
||||
diff --git a/server/thread.h b/server/thread.h
|
||||
index 382b10b5b..dd06333fd 100644
|
||||
index 8029d65df44..21b303aa20a 100644
|
||||
--- a/server/thread.h
|
||||
+++ b/server/thread.h
|
||||
@@ -54,6 +54,7 @@ struct thread
|
||||
@@ -83,5 +83,5 @@ index 382b10b5b..dd06333fd 100644
|
||||
unsigned int system_regs; /* which system regs have been set */
|
||||
struct msg_queue *queue; /* message queue */
|
||||
--
|
||||
2.22.0
|
||||
2.26.0
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user