Rebase against e49feb63f489141c08a967a9c47930559e1de4f7.

This commit is contained in:
Sebastian Lackner 2017-04-25 03:08:33 +02:00
parent e3e7950f4f
commit af6b4ace35
15 changed files with 39 additions and 668 deletions

View File

@ -1,61 +0,0 @@
From 11e0603c3ec889f0b8b2f28f9a44d96a8183de31 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 16 Apr 2017 19:18:21 +0200
Subject: configure: Support for recent OSMesa versions.
---
configure.ac | 2 +-
dlls/gdi32/dibdrv/opengl.c | 17 +++++++++--------
2 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1a5b0de0e3..f5b587c80a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1149,7 +1149,7 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
if test "x$with_osmesa" != "xno"
then
- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS -lm $X_EXTRA_LIBS])
+ WINE_CHECK_SONAME(OSMesa,OSMesaGetProcAddress,,,[$X_LIBS -lm $X_EXTRA_LIBS])
WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"],
[libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.])
fi
diff --git a/dlls/gdi32/dibdrv/opengl.c b/dlls/gdi32/dibdrv/opengl.c
index 41331169c4..77d63201cf 100644
--- a/dlls/gdi32/dibdrv/opengl.c
+++ b/dlls/gdi32/dibdrv/opengl.c
@@ -113,14 +113,6 @@ static BOOL init_opengl(void)
return FALSE;
}
- for (i = 0; i < sizeof(opengl_func_names)/sizeof(opengl_func_names[0]); i++)
- {
- if (!(((void **)&opengl_funcs.gl)[i] = wine_dlsym( osmesa_handle, opengl_func_names[i], buffer, sizeof(buffer) )))
- {
- ERR( "%s not found in %s (%s), disabling.\n", opengl_func_names[i], SONAME_LIBOSMESA, buffer );
- goto failed;
- }
- }
#define LOAD_FUNCPTR(f) do if (!(p##f = wine_dlsym( osmesa_handle, #f, buffer, sizeof(buffer) ))) \
{ \
ERR( "%s not found in %s (%s), disabling.\n", #f, SONAME_LIBOSMESA, buffer ); \
@@ -134,6 +126,15 @@ static BOOL init_opengl(void)
LOAD_FUNCPTR(OSMesaPixelStore);
#undef LOAD_FUNCPTR
+ for (i = 0; i < sizeof(opengl_func_names)/sizeof(opengl_func_names[0]); i++)
+ {
+ if (!(((void **)&opengl_funcs.gl)[i] = pOSMesaGetProcAddress( opengl_func_names[i] )))
+ {
+ ERR( "%s not found in %s, disabling.\n", opengl_func_names[i], SONAME_LIBOSMESA );
+ goto failed;
+ }
+ }
+
return TRUE;
failed:
--
2.12.2

View File

@ -1 +0,0 @@
Fixes: Support compilation with recent OSMesa versions

View File

@ -1,25 +0,0 @@
From 7fda9638073cbf136c87bfcac507a067c2159b3e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 21 Feb 2015 14:49:30 +0100
Subject: include: Fix an invalid UUID in dxva2api.idl.
---
include/dxva2api.idl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/dxva2api.idl b/include/dxva2api.idl
index ebd508b..7a29157 100644
--- a/include/dxva2api.idl
+++ b/include/dxva2api.idl
@@ -434,7 +434,7 @@ interface IDirectXVideoDecoder : IUnknown
*/
[
object,
- uuid(fc51a551-d5e7-11d9-af55-00054e43ff02),
+ uuid(fc51a552-d5e7-11d9-af55-00054e43ff02),
local
]
interface IDirectXVideoProcessorService : IDirectXVideoAccelerationService
--
2.1.0

View File

@ -1,70 +0,0 @@
From d8b434940cd2206dd8c6c731c1ce2d331e0b0d50 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Thu, 2 Feb 2017 20:49:15 +0100
Subject: kernel32: Add stub for GetPackageFullName.
---
.../api-ms-win-appmodel-runtime-l1-1-1.spec | 2 +-
dlls/kernel32/kernel32.spec | 1 +
dlls/kernel32/version.c | 9 +++++++++
dlls/kernelbase/kernelbase.spec | 2 +-
4 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec b/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec
index 50f8594785..4d2edd60f5 100644
--- a/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec
+++ b/dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec
@@ -10,7 +10,7 @@
@ stub GetCurrentPackagePath
@ stub GetPackageApplicationIds
@ stub GetPackageFamilyName
-@ stub GetPackageFullName
+@ stdcall GetPackageFullName(long ptr ptr) kernel32.GetPackageFullName
@ stub GetPackageId
@ stub GetPackageInfo
@ stub GetPackagePath
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 819b52dbb9..4dcc40ea5d 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -761,6 +761,7 @@
@ stdcall GetOEMCP()
@ stdcall GetOverlappedResult(long ptr ptr long)
@ stdcall GetUserPreferredUILanguages(long ptr ptr ptr)
+@ stdcall GetPackageFullName(long ptr ptr)
@ stdcall GetPhysicallyInstalledSystemMemory(ptr)
@ stdcall GetPriorityClass(long)
@ stdcall GetPrivateProfileIntA(str str long str)
diff --git a/dlls/kernel32/version.c b/dlls/kernel32/version.c
index 5a233efe56..3cca2ae68e 100644
--- a/dlls/kernel32/version.c
+++ b/dlls/kernel32/version.c
@@ -228,3 +228,12 @@ LONG WINAPI GetCurrentPackageFullName(UINT32 *length, PWSTR name)
FIXME("(%p %p): stub\n", length, name);
return APPMODEL_ERROR_NO_PACKAGE;
}
+
+/***********************************************************************
+ * GetPackageFullName (KERNEL32.@)
+ */
+LONG WINAPI GetPackageFullName(HANDLE process, UINT32 *length, PWSTR name)
+{
+ FIXME("(%p %p %p): stub\n", process, length, name);
+ return APPMODEL_ERROR_NO_PACKAGE;
+}
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index 9fba5803b2..d040ba00a8 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -593,7 +593,7 @@
# @ stub GetPackageContext
# @ stub GetPackageFamilyName
# @ stub GetPackageFamilyNameFromToken
-# @ stub GetPackageFullName
+@ stdcall GetPackageFullName(long ptr ptr) kernel32.GetPackageFullName
# @ stub GetPackageFullNameFromToken
# @ stub GetPackageId
# @ stub GetPackageInfo
--
2.11.0

View File

@ -1,2 +0,0 @@
Fixes: Add stub for kernel32.GetPackageFullName
Depends: api-ms-win-Stub_DLLs

View File

@ -1,4 +1,4 @@
From 2ed5ce815519c93d30ed8ff2feb94caa1e5fc3be Mon Sep 17 00:00:00 2001
From fae902ce5da0baa0675d7a99b36ccb706e20b27c Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 16 Jun 2016 18:56:21 +0800
Subject: kernel32: Add a bunch of kernel32 stubs.
@ -18,11 +18,11 @@ fails to start if any of these APIs is missing.
9 files changed, 214 insertions(+), 19 deletions(-)
diff --git a/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec b/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec
index e555071d08..ed4e803372 100644
index 77414bc367..6a41d51fd3 100644
--- a/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec
+++ b/dlls/api-ms-win-core-processthreads-l1-1-0/api-ms-win-core-processthreads-l1-1-0.spec
@@ -2,7 +2,7 @@
@ stub CreateProcessAsUserW
@ stdcall CreateProcessAsUserW(long wstr wstr ptr ptr long long ptr wstr ptr ptr) advapi32.CreateProcessAsUserW
@ stdcall CreateProcessW(wstr wstr ptr ptr long long ptr wstr ptr ptr) kernel32.CreateProcessW
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
-@ stub CreateRemoteThreadEx
@ -57,7 +57,7 @@ index 968b960a6a..0e30f18e52 100644
@ stdcall DeleteProcThreadAttributeList(ptr) kernel32.DeleteProcThreadAttributeList
@ stdcall ExitProcess(long) kernel32.ExitProcess
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 31ce4565b9..819b52dbb9 100644
index 5ef7cb8172..4dcc40ea5d 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -319,7 +319,7 @@
@ -126,7 +126,7 @@ index 31ce4565b9..819b52dbb9 100644
@ stub GetNextVDMCommand
@ stub GetNlsSectionName
# @ stub GetNLSVersion
@@ -865,7 +865,7 @@
@@ -866,7 +866,7 @@
@ stdcall GetTimeZoneInformationForYear(long ptr ptr)
@ stdcall GetThreadUILanguage()
# @ stub GetUILanguageInfo
@ -135,7 +135,7 @@ index 31ce4565b9..819b52dbb9 100644
# @ stub -arch=x86_64 GetUmsSystemThreadInformation
@ stdcall GetUserDefaultLCID()
@ stdcall GetUserDefaultLangID()
@@ -1174,7 +1174,7 @@
@@ -1175,7 +1175,7 @@
@ stdcall QueryThreadCycleTime(long ptr)
# @ stub QueryThreadProfiling
# @ stub QueryThreadpoolStackInformation
@ -144,7 +144,7 @@ index 31ce4565b9..819b52dbb9 100644
@ stdcall QueryUnbiasedInterruptTime(ptr)
@ stub QueryWin31IniFilesMappedToRegistry
@ stdcall QueueUserAPC(ptr long long)
@@ -1463,7 +1463,7 @@
@@ -1464,7 +1464,7 @@
@ stdcall SetThreadpoolWait(ptr long ptr)
@ stdcall SetTimeZoneInformation(ptr)
@ stub SetTimerQueueTimer
@ -153,7 +153,7 @@ index 31ce4565b9..819b52dbb9 100644
@ stdcall SetUnhandledExceptionFilter(ptr)
@ stdcall SetUserGeoID(long)
@ stub SetVDMCurrentDirectories
@@ -1523,7 +1523,7 @@
@@ -1524,7 +1524,7 @@
# @ stub -arch=x86_64 uaw_wcsicmp
# @ stub -arch=x86_64 uaw_wcslen
# @ stub -arch=x86_64 uaw_wcsrchr
@ -163,10 +163,10 @@ index 31ce4565b9..819b52dbb9 100644
@ stdcall -i386 -private UTRegister(long str str str ptr ptr ptr) krnl386.exe16.UTRegister
@ stdcall -i386 -private UTUnRegister(long) krnl386.exe16.UTUnRegister
diff --git a/dlls/kernel32/sync.c b/dlls/kernel32/sync.c
index 494db9c1a3..d099832b84 100644
index ee995f55af..391184af01 100644
--- a/dlls/kernel32/sync.c
+++ b/dlls/kernel32/sync.c
@@ -2452,3 +2452,148 @@ BOOL WINAPI SleepConditionVariableSRW( RTL_CONDITION_VARIABLE *variable, RTL_SRW
@@ -2454,3 +2454,148 @@ BOOL WINAPI SleepConditionVariableSRW( RTL_CONDITION_VARIABLE *variable, RTL_SRW
}
return TRUE;
}
@ -339,7 +339,7 @@ index de466185e9..c8dd94bbea 100644
* OpenThread [KERNEL32.@] Retrieves a handle to a thread from its thread id
*/
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index ff0e75fc44..da7c50a820 100644
index 689d58739e..8f5ac6c7ec 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -212,7 +212,7 @@
@ -352,7 +352,7 @@ index ff0e75fc44..da7c50a820 100644
@ stdcall CreateSemaphoreExW(ptr long long wstr long long) kernel32.CreateSemaphoreExW
@ stdcall CreateSemaphoreW(ptr long long wstr) kernel32.CreateSemaphoreW
diff --git a/include/winbase.h b/include/winbase.h
index 894156c0f7..a4b7a0ad19 100644
index 67c29b51c5..2306b4fc0c 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -1682,6 +1682,20 @@ typedef enum _PROC_THREAD_ATTRIBUTE_NUM
@ -376,7 +376,7 @@ index 894156c0f7..a4b7a0ad19 100644
WINBASEAPI BOOL WINAPI ActivateActCtx(HANDLE,ULONG_PTR *);
WINADVAPI BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID);
WINADVAPI BOOL WINAPI AddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID);
@@ -1830,6 +1844,7 @@ WINADVAPI BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECUR
@@ -1831,6 +1845,7 @@ WINADVAPI BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECUR
#define CreateProcessAsUser WINELIB_NAME_AW(CreateProcessAsUser)
WINADVAPI BOOL WINAPI CreateProcessWithLogonW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPWSTR,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
@ -384,7 +384,7 @@ index 894156c0f7..a4b7a0ad19 100644
WINADVAPI BOOL WINAPI CreateRestrictedToken(HANDLE,DWORD,DWORD,PSID_AND_ATTRIBUTES,DWORD,PLUID_AND_ATTRIBUTES,DWORD,PSID_AND_ATTRIBUTES,PHANDLE);
WINBASEAPI HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR);
WINBASEAPI HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR);
@@ -1847,6 +1862,8 @@ WINBASEAPI DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
@@ -1848,6 +1863,8 @@ WINBASEAPI DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD);
WINBASEAPI HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
WINBASEAPI HANDLE WINAPI CreateTimerQueue(void);
WINBASEAPI BOOL WINAPI CreateTimerQueueTimer(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,DWORD,DWORD,ULONG);
@ -393,7 +393,7 @@ index 894156c0f7..a4b7a0ad19 100644
WINBASEAPI HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR);
WINBASEAPI HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR);
#define CreateWaitableTimer WINELIB_NAME_AW(CreateWaitableTimer)
@@ -1905,6 +1922,7 @@ WINBASEAPI BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL);
@@ -1906,6 +1923,7 @@ WINBASEAPI BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL);
WINBASEAPI BOOL WINAPI EndUpdateResourceW(HANDLE,BOOL);
#define EndUpdateResource WINELIB_NAME_AW(EndUpdateResource)
WINBASEAPI void WINAPI EnterCriticalSection(CRITICAL_SECTION *lpCrit);
@ -402,10 +402,10 @@ index 894156c0f7..a4b7a0ad19 100644
WINBASEAPI BOOL WINAPI EnumResourceLanguagesW(HMODULE,LPCWSTR,LPCWSTR,ENUMRESLANGPROCW,LONG_PTR);
#define EnumResourceLanguages WINELIB_NAME_AW(EnumResourceLanguages)
diff --git a/include/winnt.h b/include/winnt.h
index 3c5f0b8cb3..be43110ee6 100644
index 450499c129..5bd1b1b4a8 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -6022,9 +6022,29 @@ typedef VOID (CALLBACK *PTP_TIMER_CALLBACK)(PTP_CALLBACK_INSTANCE,PVOID,PTP_TIME
@@ -6016,9 +6016,29 @@ typedef VOID (CALLBACK *PTP_TIMER_CALLBACK)(PTP_CALLBACK_INSTANCE,PVOID,PTP_TIME
typedef VOID (CALLBACK *PTP_WAIT_CALLBACK)(PTP_CALLBACK_INSTANCE,PVOID,PTP_WAIT,TP_WAIT_RESULT);
typedef VOID (CALLBACK *PTP_WIN32_IO_CALLBACK)(PTP_CALLBACK_INSTANCE,PVOID,PVOID,ULONG,ULONG_PTR,PTP_IO);
@ -437,5 +437,5 @@ index 3c5f0b8cb3..be43110ee6 100644
}
#endif
--
2.11.0
2.12.2

View File

@ -1,158 +0,0 @@
From ace828aabf6e0e8bc9db3e080ea7409e032586b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 26 Mar 2016 04:20:03 +0100
Subject: include/mfidl.idl: Add IMFMediaSession interface and dependencies.
---
include/Makefile.in | 1 +
include/mfidl.idl | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 127 insertions(+)
create mode 100644 include/mfidl.idl
diff --git a/include/Makefile.in b/include/Makefile.in
index 4fbfd16bf58..855cc47590e 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -88,6 +88,7 @@ IDL_SRCS = \
inspectable.idl \
mediaobj.idl \
metahost.idl \
+ mfidl.idl \
mfobjects.idl \
mfreadwrite.idl \
mimeinfo.idl \
diff --git a/include/mfidl.idl b/include/mfidl.idl
new file mode 100644
index 00000000000..3431260cf01
--- /dev/null
+++ b/include/mfidl.idl
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2016 Michael Müller
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "mfobjects.idl";
+
+typedef unsigned __int64 TOPOID;
+typedef LONGLONG MFTIME;
+
+typedef enum MF_TOPOLOGY_TYPE
+{
+ MF_TOPOLOGY_OUTPUT_NODE,
+ MF_TOPOLOGY_SOURCESTREAM_NODE,
+ MF_TOPOLOGY_TRANSFORM_NODE,
+ MF_TOPOLOGY_TEE_NODE,
+ MF_TOPOLOGY_MAX = 0xffffffff
+} MF_TOPOLOGY_TYPE;
+
+typedef enum _MFCLOCK_STATE
+{
+ MFCLOCK_STATE_INVALID,
+ MFCLOCK_STATE_RUNNING,
+ MFCLOCK_STATE_STOPPED,
+ MFCLOCK_STATE_PAUSED
+} MFCLOCK_STATE;
+
+typedef struct _MFCLOCK_PROPERTIES
+{
+ unsigned __int64 qwCorrelationRate;
+ GUID guidClockId;
+ DWORD dwClockFlags;
+ unsigned __int64 qwClockFrequency;
+ DWORD dwClockTolerance;
+ DWORD dwClockJitter;
+} MFCLOCK_PROPERTIES;
+
+[
+ object,
+ uuid(2eb1e945-18b8-4139-9b1a-d5d584818530),
+]
+interface IMFClock : IUnknown
+{
+ HRESULT GetClockCharacteristics([out] DWORD *characteristics);
+ HRESULT GetCorrelatedTime([in] DWORD reserved, [out] LONGLONG *clock_time, [out] MFTIME *system_time);
+ HRESULT GetContinuityKey([out] DWORD *key);
+ HRESULT GetState([in] DWORD reserved, [out] MFCLOCK_STATE *state);
+ HRESULT GetProperties([out] MFCLOCK_PROPERTIES *props);
+}
+
+[
+ object,
+ uuid(83cf873a-f6da-4bc8-823f-bacfd55dc430),
+]
+interface IMFTopologyNode : IMFAttributes
+{
+ HRESULT SetObject([in] IUnknown *object);
+ HRESULT GetObject([out] IUnknown **object);
+ HRESULT GetNodeType([out] MF_TOPOLOGY_TYPE *type);
+ HRESULT GetTopoNodeID([out] TOPOID *id);
+ HRESULT SetTopoNodeID([in] TOPOID id);
+ HRESULT GetInputCount([out] DWORD *count);
+ HRESULT GetOutputCount([out] DWORD *count);
+ [local] HRESULT ConnectOutput([in] DWORD output_index, [in] IMFTopologyNode *node, [in] DWORD input_index);
+ [local] HRESULT DisconnectOutput([in] DWORD index);
+ HRESULT GetInput([in] DWORD input_index, [out] IMFTopologyNode **node, [out] DWORD *output_index);
+ HRESULT GetOutput([in] DWORD output_index, [out] IMFTopologyNode **node, [out] DWORD *input_index);
+ [local] HRESULT SetOutputPrefType([in] DWORD index, [in] IMFMediaType *type);
+ [local] HRESULT GetOutputPrefType([in] DWORD output_index, [out] IMFMediaType **type);
+ [call_as(GetOutputPrefType)] HRESULT RemoteGetOutputPrefType([in] DWORD index, [out] DWORD *length,
+ [out, size_is(, *length)] BYTE **data);
+ [local] HRESULT SetInputPrefType([in] DWORD index, [in] IMFMediaType *type);
+ [local] HRESULT GetInputPrefType([in] DWORD index, [out] IMFMediaType **type);
+ [call_as(GetInputPrefType)] HRESULT RemoteGetInputPrefType([in] DWORD index, [out] DWORD *length,
+ [out, size_is(, *length)] BYTE **data);
+ HRESULT CloneFrom([in] IMFTopologyNode *node);
+}
+
+[
+ object,
+ uuid(83cf873a-f6da-4bc8-823f-bacfd55dc433),
+]
+interface IMFTopology : IMFAttributes
+{
+ HRESULT GetTopologyID([out] TOPOID *id);
+ [local] HRESULT AddNode([in] IMFTopologyNode *node);
+ [local] HRESULT RemoveNode([in] IMFTopologyNode *node);
+ HRESULT GetNodeCount([out] WORD *nodes);
+ HRESULT GetNode([in] WORD index, [out] IMFTopologyNode **node);
+ [local] HRESULT Clear();
+ HRESULT CloneFrom([in] IMFTopology *topology);
+ HRESULT GetNodeByID([in] TOPOID id, [out] IMFTopologyNode **node);
+ HRESULT GetSourceNodeCollection([out] IMFCollection **collection);
+ HRESULT GetOutputNodeCollection([out] IMFCollection **collection);
+}
+
+[
+ object,
+ uuid(90377834-21d0-4dee-8214-ba2e3e6c1127),
+]
+interface IMFMediaSession : IMFMediaEventGenerator
+{
+ HRESULT SetTopology([in] DWORD flags, [in] IMFTopology *topology);
+ HRESULT ClearTopologies();
+ HRESULT Start([in, unique] const GUID *format, [in, unique] const PROPVARIANT *start);
+ HRESULT Pause();
+ HRESULT Stop();
+ HRESULT Close();
+ HRESULT Shutdown();
+ HRESULT GetClock([out] IMFClock **clock);
+ HRESULT GetSessionCapabilities([out] DWORD *caps);
+ HRESULT GetFullTopology([in] DWORD flags, [in] TOPOID id, [out] IMFTopology **topology);
+}
--
2.11.0

View File

@ -1,24 +0,0 @@
From f30fb4fe4ef931b592f1a7edcc3609b9819158ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 7 Mar 2017 04:59:41 +0100
Subject: ntdll: Mark LDR data as initialized.
---
dlls/ntdll/thread.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
index c9a5da6226..0506f6bc10 100644
--- a/dlls/ntdll/thread.c
+++ b/dlls/ntdll/thread.c
@@ -259,6 +259,7 @@ HANDLE thread_init(void)
params.CurrentDirectory.DosPath.MaximumLength = sizeof(current_dir);
params.wShowWindow = 1; /* SW_SHOWNORMAL */
ldr.Length = sizeof(ldr);
+ ldr.Initialized = TRUE;
RtlInitializeBitMap( &tls_bitmap, peb->TlsBitmapBits, sizeof(peb->TlsBitmapBits) * 8 );
RtlInitializeBitMap( &tls_expansion_bitmap, peb->TlsExpansionBitmapBits,
sizeof(peb->TlsExpansionBitmapBits) * 8 );
--
2.11.0

View File

@ -1,101 +0,0 @@
From 4f38042b0df2d9bee21b3cffc8f18a61affaa963 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 31 Mar 2017 16:17:35 +0200
Subject: ntdll: Add stub for JobObjectBasicAccountingInformation and
JobObjectBasicProcessIdList in NtQueryInformationJobObject.
---
dlls/kernel32/tests/process.c | 10 ++++++++--
dlls/ntdll/sync.c | 24 ++++++++++++++++++++++++
2 files changed, 32 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/tests/process.c b/dlls/kernel32/tests/process.c
index 04feb71a63..c480a278c9 100644
--- a/dlls/kernel32/tests/process.c
+++ b/dlls/kernel32/tests/process.c
@@ -2515,7 +2515,6 @@ static void test_QueryInformationJobObject(void)
ret = QueryInformationJobObject(job, JobObjectBasicProcessIdList, pid_list,
FIELD_OFFSET(JOBOBJECT_BASIC_PROCESS_ID_LIST, ProcessIdList), &ret_len);
ok(!ret, "QueryInformationJobObject expected failure\n");
- todo_wine
expect_eq_d(ERROR_BAD_LENGTH, GetLastError());
SetLastError(0xdeadbeef);
@@ -2524,18 +2523,20 @@ static void test_QueryInformationJobObject(void)
pid_list->NumberOfProcessIdsInList = 42;
ret = QueryInformationJobObject(job, JobObjectBasicProcessIdList, pid_list,
FIELD_OFFSET(JOBOBJECT_BASIC_PROCESS_ID_LIST, ProcessIdList[1]), &ret_len);
+ todo_wine
ok(!ret, "QueryInformationJobObject expected failure\n");
todo_wine
expect_eq_d(ERROR_MORE_DATA, GetLastError());
if (ret)
{
+ todo_wine
expect_eq_d(42, pid_list->NumberOfAssignedProcesses);
+ todo_wine
expect_eq_d(42, pid_list->NumberOfProcessIdsInList);
}
memset(buf, 0, sizeof(buf));
ret = pQueryInformationJobObject(job, JobObjectBasicProcessIdList, pid_list, sizeof(buf), &ret_len);
- todo_wine
ok(ret, "QueryInformationJobObject error %u\n", GetLastError());
if(ret)
{
@@ -2545,12 +2546,17 @@ static void test_QueryInformationJobObject(void)
{
ULONG_PTR *list = pid_list->ProcessIdList;
+ todo_wine
ok(ret_len == FIELD_OFFSET(JOBOBJECT_BASIC_PROCESS_ID_LIST, ProcessIdList[2]),
"QueryInformationJobObject returned ret_len=%u\n", ret_len);
+ todo_wine
expect_eq_d(2, pid_list->NumberOfAssignedProcesses);
+ todo_wine
expect_eq_d(2, pid_list->NumberOfProcessIdsInList);
+ todo_wine
expect_eq_d(pi[0].dwProcessId, list[0]);
+ todo_wine
expect_eq_d(pi[1].dwProcessId, list[1]);
}
}
diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c
index c1797601de..cfb5cbce0e 100644
--- a/dlls/ntdll/sync.c
+++ b/dlls/ntdll/sync.c
@@ -645,6 +645,30 @@ NTSTATUS WINAPI NtQueryInformationJobObject( HANDLE handle, JOBOBJECTINFOCLASS c
switch (class)
{
+ case JobObjectBasicAccountingInformation:
+ {
+ JOBOBJECT_BASIC_ACCOUNTING_INFORMATION *accounting;
+ if (len < sizeof(*accounting))
+ return STATUS_INFO_LENGTH_MISMATCH;
+
+ accounting = (JOBOBJECT_BASIC_ACCOUNTING_INFORMATION *)info;
+ memset(accounting, 0, sizeof(*accounting));
+ if (ret_len) *ret_len = sizeof(*accounting);
+ return STATUS_SUCCESS;
+ }
+
+ case JobObjectBasicProcessIdList:
+ {
+ JOBOBJECT_BASIC_PROCESS_ID_LIST *process;
+ if (len < sizeof(*process))
+ return STATUS_INFO_LENGTH_MISMATCH;
+
+ process = (JOBOBJECT_BASIC_PROCESS_ID_LIST *)info;
+ memset(process, 0, sizeof(*process));
+ if (ret_len) *ret_len = sizeof(*process);
+ return STATUS_SUCCESS;
+ }
+
case JobObjectExtendedLimitInformation:
{
JOBOBJECT_EXTENDED_LIMIT_INFORMATION *extended_limit;
--
2.11.0

View File

@ -1 +0,0 @@
Fixes: [42744] Add more stub classes in NtQueryInformationJobObject

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "cced5dfbde8b685022dd74e666f8ad4ea8473453"
echo "e49feb63f489141c08a967a9c47930559e1de4f7"
}
# Show version information
@ -103,7 +103,6 @@ patch_enable_all ()
enable_comctl32_TTM_ADDTOOLW="$1"
enable_comdlg32_lpstrFileTitle="$1"
enable_configure_Absolute_RPATH="$1"
enable_configure_OSMesa="$1"
enable_crypt32_CMS_Certificates="$1"
enable_crypt32_Certificate_Check="$1"
enable_crypt32_CryptUnprotectMemory="$1"
@ -180,7 +179,6 @@ patch_enable_all ()
enable_kernel32_Cwd_Startup_Info="$1"
enable_kernel32_Debugger="$1"
enable_kernel32_FindFirstFile="$1"
enable_kernel32_GetPackageFullName="$1"
enable_kernel32_GetShortPathName="$1"
enable_kernel32_K32GetPerformanceInfo="$1"
enable_kernel32_LocaleNameToLCID="$1"
@ -244,7 +242,6 @@ patch_enable_all ()
enable_ntdll_NtAccessCheck="$1"
enable_ntdll_NtAllocateUuids="$1"
enable_ntdll_NtQueryEaFile="$1"
enable_ntdll_NtQueryInformationJobObject="$1"
enable_ntdll_NtQuerySection="$1"
enable_ntdll_NtQueryVirtualMemory="$1"
enable_ntdll_NtSetInformationToken="$1"
@ -381,7 +378,6 @@ patch_enable_all ()
enable_user32_lpCreateParams="$1"
enable_uxtheme_CloseThemeClass="$1"
enable_uxtheme_GTK_Theming="$1"
enable_vcomp__vcomp_for_static_init="$1"
enable_version_GetFileVersionInfoSizeExW="$1"
enable_version_VerFindFileA="$1"
enable_version_VerQueryValue="$1"
@ -537,9 +533,6 @@ patch_enable ()
configure-Absolute_RPATH)
enable_configure_Absolute_RPATH="$2"
;;
configure-OSMesa)
enable_configure_OSMesa="$2"
;;
crypt32-CMS_Certificates)
enable_crypt32_CMS_Certificates="$2"
;;
@ -768,9 +761,6 @@ patch_enable ()
kernel32-FindFirstFile)
enable_kernel32_FindFirstFile="$2"
;;
kernel32-GetPackageFullName)
enable_kernel32_GetPackageFullName="$2"
;;
kernel32-GetShortPathName)
enable_kernel32_GetShortPathName="$2"
;;
@ -960,9 +950,6 @@ patch_enable ()
ntdll-NtQueryEaFile)
enable_ntdll_NtQueryEaFile="$2"
;;
ntdll-NtQueryInformationJobObject)
enable_ntdll_NtQueryInformationJobObject="$2"
;;
ntdll-NtQuerySection)
enable_ntdll_NtQuerySection="$2"
;;
@ -1371,9 +1358,6 @@ patch_enable ()
uxtheme-GTK_Theming)
enable_uxtheme_GTK_Theming="$2"
;;
vcomp-_vcomp_for_static_init)
enable_vcomp__vcomp_for_static_init="$2"
;;
version-GetFileVersionInfoSizeExW)
enable_version_GetFileVersionInfoSizeExW="$2"
;;
@ -2423,13 +2407,6 @@ if test "$enable_kernel32_PE_Loader_Fixes" -eq 1; then
enable_kernel32_Misalign_Workaround=1
fi
if test "$enable_kernel32_GetPackageFullName" -eq 1; then
if test "$enable_api_ms_win_Stub_DLLs" -gt 1; then
abort "Patchset api-ms-win-Stub_DLLs disabled, but kernel32-GetPackageFullName depends on that."
fi
enable_api_ms_win_Stub_DLLs=1
fi
if test "$enable_kernel32_CopyFileEx" -eq 1; then
if test "$enable_ntdll_FileDispositionInformation" -gt 1; then
abort "Patchset ntdll-FileDispositionInformation disabled, but kernel32-CopyFileEx depends on that."
@ -3085,18 +3062,6 @@ if test "$enable_configure_Absolute_RPATH" -eq 1; then
) >> "$patchlist"
fi
# Patchset configure-OSMesa
# |
# | Modified files:
# | * configure.ac, dlls/gdi32/dibdrv/opengl.c
# |
if test "$enable_configure_OSMesa" -eq 1; then
patch_apply configure-OSMesa/0001-configure-Support-for-recent-OSMesa-versions.patch
(
printf '%s\n' '+ { "Sebastian Lackner", "configure: Support for recent OSMesa versions.", 1 },';
) >> "$patchlist"
fi
# Patchset crypt32-CMS_Certificates
# |
# | This patchset fixes the following Wine bugs:
@ -4053,7 +4018,6 @@ fi
if test "$enable_dxva2_Video_Decoder" -eq 1; then
patch_apply dxva2-Video_Decoder/0001-dxva2-Implement-semi-stub-for-Direct3DDeviceManager9.patch
patch_apply dxva2-Video_Decoder/0002-dxva2-Implement-stubbed-interfaces-for-IDirectXVideo.patch
patch_apply dxva2-Video_Decoder/0003-include-Fix-an-invalid-UUID-in-dxva2api.idl.patch
patch_apply dxva2-Video_Decoder/0004-dxva2-Implement-stubbed-DirectX-Software-VideoProces.patch
patch_apply dxva2-Video_Decoder/0005-include-Add-dxva.h-header-file.patch
patch_apply dxva2-Video_Decoder/0006-dxva2-tests-Add-tests-for-dxva2-decoder.patch
@ -4066,7 +4030,6 @@ if test "$enable_dxva2_Video_Decoder" -eq 1; then
(
printf '%s\n' '+ { "Sebastian Lackner", "dxva2: Implement semi-stub for Direct3DDeviceManager9 interface.", 1 },';
printf '%s\n' '+ { "Michael Müller", "dxva2: Implement stubbed interfaces for IDirectXVideo{Acceleration,Decoder,Processor}Service.", 1 },';
printf '%s\n' '+ { "Michael Müller", "include: Fix an invalid UUID in dxva2api.idl.", 1 },';
printf '%s\n' '+ { "Michael Müller", "dxva2: Implement stubbed DirectX Software VideoProcessor interface.", 1 },';
printf '%s\n' '+ { "Michael Müller", "include: Add dxva.h header file.", 1 },';
printf '%s\n' '+ { "Michael Müller", "dxva2/tests: Add tests for dxva2 decoder.", 1 },';
@ -4544,22 +4507,6 @@ if test "$enable_kernel32_FindFirstFile" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-GetPackageFullName
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * combase-RoApi, kernel32-UmsStubs, api-ms-win-Stub_DLLs
# |
# | Modified files:
# | * dlls/api-ms-win-appmodel-runtime-l1-1-1/api-ms-win-appmodel-runtime-l1-1-1.spec, dlls/kernel32/kernel32.spec,
# | dlls/kernel32/version.c, dlls/kernelbase/kernelbase.spec
# |
if test "$enable_kernel32_GetPackageFullName" -eq 1; then
patch_apply kernel32-GetPackageFullName/0001-kernel32-Add-stub-for-GetPackageFullName.patch
(
printf '%s\n' '+ { "Michael Müller", "kernel32: Add stub for GetPackageFullName.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-GetShortPathName
# |
# | This patchset fixes the following Wine bugs:
@ -4922,14 +4869,13 @@ fi
# | Modified files:
# | * configure.ac, dlls/mf/Makefile.in, dlls/mf/main.c, dlls/mf/mf.spec, dlls/mf/mf_private.h, dlls/mf/session.c,
# | dlls/mfplat/Makefile.in, dlls/mfplat/main.c, dlls/mfplat/mfplat.spec, dlls/mfplat/tests/Makefile.in,
# | dlls/mfplat/tests/mfplat.c, include/Makefile.in, include/mfidl.idl, include/rpcndr.h, loader/wine.inf.in
# | dlls/mfplat/tests/mfplat.c, include/mfidl.idl, include/rpcndr.h, loader/wine.inf.in
# |
if test "$enable_mfplat_MFTRegister" -eq 1; then
patch_apply mfplat-MFTRegister/0001-mfplat-Implement-MFTRegister.patch
patch_apply mfplat-MFTRegister/0002-mfplat-Implement-MFTUnregister.patch
patch_apply mfplat-MFTRegister/0003-mfplat-Implement-MFTEnum.patch
patch_apply mfplat-MFTRegister/0004-mfplat-tests-Add-tests.patch
patch_apply mfplat-MFTRegister/0005-include-mfidl.idl-Add-IMFMediaSession-interface-and-.patch
patch_apply mfplat-MFTRegister/0006-mf-Add-stub-for-MFCreateMediaSession.patch
patch_apply mfplat-MFTRegister/0007-include-rpcndr.h-Fix-definition-of-EXTERN_GUID.patch
patch_apply mfplat-MFTRegister/0008-mf-Implement-IMFMediaSession-stub-interface.patch
@ -4939,7 +4885,6 @@ if test "$enable_mfplat_MFTRegister" -eq 1; then
printf '%s\n' '+ { "Michael Müller", "mfplat: Implement MFTUnregister.", 1 },';
printf '%s\n' '+ { "Michael Müller", "mfplat: Implement MFTEnum.", 1 },';
printf '%s\n' '+ { "Michael Müller", "mfplat/tests: Add tests.", 1 },';
printf '%s\n' '+ { "Michael Müller", "include/mfidl.idl: Add IMFMediaSession interface and dependencies.", 1 },';
printf '%s\n' '+ { "Michael Müller", "mf: Add stub for MFCreateMediaSession.", 1 },';
printf '%s\n' '+ { "Michael Müller", "include/rpcndr.h: Fix definition of EXTERN_GUID.", 1 },';
printf '%s\n' '+ { "Michael Müller", "mf: Implement IMFMediaSession stub interface.", 1 },';
@ -5433,13 +5378,11 @@ fi
# Patchset ntdll-LDR_MODULE
# |
# | Modified files:
# | * dlls/ntdll/thread.c, include/winternl.h
# | * include/winternl.h
# |
if test "$enable_ntdll_LDR_MODULE" -eq 1; then
patch_apply ntdll-LDR_MODULE/0001-ntdll-Mark-LDR-data-as-initialized.patch
patch_apply ntdll-LDR_MODULE/0002-include-Update-LDR_MODULE-to-more-recent-windows-ver.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll: Mark LDR data as initialized.", 1 },';
printf '%s\n' '+ { "Michael Müller", "include: Update LDR_MODULE to more recent windows versions.", 1 },';
) >> "$patchlist"
fi
@ -5625,21 +5568,6 @@ if test "$enable_ntdll_NtAllocateUuids" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-NtQueryInformationJobObject
# |
# | This patchset fixes the following Wine bugs:
# | * [#42744] Add more stub classes in NtQueryInformationJobObject
# |
# | Modified files:
# | * dlls/kernel32/tests/process.c, dlls/ntdll/sync.c
# |
if test "$enable_ntdll_NtQueryInformationJobObject" -eq 1; then
patch_apply ntdll-NtQueryInformationJobObject/0001-ntdll-Add-stub-for-JobObjectBasicAccountingInformati.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for JobObjectBasicAccountingInformation and JobObjectBasicProcessIdList in NtQueryInformationJobObject.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-NtQuerySection
# |
# | Modified files:
@ -7956,18 +7884,6 @@ if test "$enable_uxtheme_GTK_Theming" -eq 1; then
) >> "$patchlist"
fi
# Patchset vcomp-_vcomp_for_static_init
# |
# | Modified files:
# | * dlls/vcomp/main.c, dlls/vcomp/tests/vcomp.c
# |
if test "$enable_vcomp__vcomp_for_static_init" -eq 1; then
patch_apply vcomp-_vcomp_for_static_init/0001-vcomp-Handle-begin-NULL-in-_vcomp_for_static_init.patch
(
printf '%s\n' '+ { "Sebastian Lackner", "vcomp: Handle begin == NULL in _vcomp_for_static_init.", 1 },';
) >> "$patchlist"
fi
# Patchset version-GetFileVersionInfoSizeExW
# |
# | Modified files:

View File

@ -1,4 +1,4 @@
From 63c4e77ca26c57eb4f1c0786f4b62f3b01106d96 Mon Sep 17 00:00:00 2001
From bf82e5d2fe5a5436059f46266a2f2d8e754fcdb0 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 17 Aug 2015 01:11:47 +0200
Subject: server: Store a reference to the parent object for pipe servers. (v2)
@ -11,10 +11,10 @@ Subject: server: Store a reference to the parent object for pipe servers. (v2)
4 files changed, 53 insertions(+), 19 deletions(-)
diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c
index 43c5ee46d7..9a1ba670ab 100644
index b58f76365f..84b783b80a 100644
--- a/dlls/ntdll/tests/om.c
+++ b/dlls/ntdll/tests/om.c
@@ -1487,14 +1487,11 @@ static void test_query_object(void)
@@ -1503,14 +1503,11 @@ static void test_query_object(void)
status = pNtQueryObject( handle, ObjectNameInformation, buffer, sizeof(buffer), &len );
ok( status == STATUS_SUCCESS , "NtQueryObject returned %x\n", status );
str = (UNICODE_STRING *)buffer;
@ -30,10 +30,10 @@ index 43c5ee46d7..9a1ba670ab 100644
"name too short %s\n", wine_dbgstr_w(str->Buffer) );
trace( "got %s len %u\n", wine_dbgstr_w(str->Buffer), len );
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 4196edfd4b..0726c75f40 100644
index 436fb3c5df..f600703d24 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -162,6 +162,8 @@ static void pipe_end_reselect_async( struct fd *fd, struct async_queue *queue );
@@ -163,6 +163,8 @@ static void pipe_end_reselect_async( struct fd *fd, struct async_queue *queue );
/* server end functions */
static void pipe_server_dump( struct object *obj, int verbose );
static struct fd *pipe_server_get_fd( struct object *obj );
@ -41,7 +41,7 @@ index 4196edfd4b..0726c75f40 100644
+static void pipe_server_unlink_name( struct object *obj, struct object_name *name );
static void pipe_server_destroy( struct object *obj);
static obj_handle_t pipe_server_flush( struct fd *fd, struct async *async );
static enum server_fd_type pipe_server_get_fd_type( struct fd *fd );
static obj_handle_t pipe_server_ioctl( struct fd *fd, ioctl_code_t code, struct async *async );
@@ -182,8 +184,8 @@ static const struct object_ops pipe_server_ops =
default_get_sd, /* get_sd */
default_set_sd, /* set_sd */
@ -62,7 +62,7 @@ index 4196edfd4b..0726c75f40 100644
static void pipe_client_destroy( struct object *obj );
static obj_handle_t pipe_client_flush( struct fd *fd, struct async *async );
static obj_handle_t pipe_client_ioctl( struct fd *fd, ioctl_code_t code, struct async *async );
@@ -227,8 +231,8 @@ static const struct object_ops pipe_client_ops =
@@ -226,8 +230,8 @@ static const struct object_ops pipe_client_ops =
default_get_sd, /* get_sd */
default_set_sd, /* set_sd */
no_lookup_name, /* lookup_name */
@ -73,7 +73,7 @@ index 4196edfd4b..0726c75f40 100644
no_open_file, /* open_file */
no_alloc_handle, /* alloc_handle */
fd_close_handle, /* close_handle */
@@ -480,6 +484,17 @@ static void pipe_end_destroy( struct pipe_end *pipe_end )
@@ -479,6 +483,17 @@ static void pipe_end_destroy( struct pipe_end *pipe_end )
free_async_queue( pipe_end->write_q );
}
@ -91,7 +91,7 @@ index 4196edfd4b..0726c75f40 100644
static void pipe_server_destroy( struct object *obj)
{
struct pipe_server *server = (struct pipe_server *)obj;
@@ -509,6 +524,17 @@ static void pipe_server_destroy( struct object *obj)
@@ -508,6 +523,17 @@ static void pipe_server_destroy( struct object *obj)
release_object( server->pipe );
}
@ -109,7 +109,7 @@ index 4196edfd4b..0726c75f40 100644
static void pipe_client_destroy( struct object *obj)
{
struct pipe_client *client = (struct pipe_client *)obj;
@@ -1080,9 +1106,10 @@ static void init_pipe_end( struct pipe_end *pipe_end, unsigned int pipe_flags, d
@@ -1073,9 +1099,10 @@ static void init_pipe_end( struct pipe_end *pipe_end, unsigned int pipe_flags, d
static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned int options,
unsigned int pipe_flags )
{
@ -121,7 +121,7 @@ index 4196edfd4b..0726c75f40 100644
if (!server)
return NULL;
@@ -1104,11 +1131,13 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned
@@ -1097,11 +1124,13 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned
return server;
}
@ -137,7 +137,7 @@ index 4196edfd4b..0726c75f40 100644
if (!client)
return NULL;
@@ -1178,7 +1207,7 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
@@ -1171,7 +1200,7 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
return NULL;
}
@ -147,7 +147,7 @@ index 4196edfd4b..0726c75f40 100644
if (use_server_io( &server->pipe_end ))
{
diff --git a/server/object.c b/server/object.c
index 46f020e522..653687d5bf 100644
index 2ce1cdcd56..37ac0adce6 100644
--- a/server/object.c
+++ b/server/object.c
@@ -176,7 +176,7 @@ WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len )
@ -201,7 +201,7 @@ index 46f020e522..653687d5bf 100644
/* dump the name of an object to stderr */
diff --git a/server/object.h b/server/object.h
index 72ad8528c5..ddb4410525 100644
index 9ff123ebff..4a5d282a47 100644
--- a/server/object.h
+++ b/server/object.h
@@ -135,6 +135,8 @@ extern WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len );
@ -214,5 +214,5 @@ index 72ad8528c5..ddb4410525 100644
const struct unicode_str *name, unsigned int attributes,
const struct security_descriptor *sd );
--
2.11.0
2.12.2

View File

@ -1,101 +0,0 @@
From 4e4f93cf9aa5facc85ce9f51837e9d5ffb5540fa Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 1 Feb 2017 14:55:43 +0100
Subject: vcomp: Handle begin == NULL in _vcomp_for_static_init.
---
dlls/vcomp/main.c | 7 +++++++
dlls/vcomp/tests/vcomp.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 55 insertions(+)
diff --git a/dlls/vcomp/main.c b/dlls/vcomp/main.c
index 34e327eedb7..5206e474b34 100644
--- a/dlls/vcomp/main.c
+++ b/dlls/vcomp/main.c
@@ -1171,10 +1171,17 @@ void CDECL _vcomp_for_static_init(int first, int last, int step, int chunksize,
struct vcomp_team_data *team_data = thread_data->team;
int num_threads = team_data ? team_data->num_threads : 1;
int thread_num = thread_data->thread_num;
+ int no_begin, no_lastchunk;
TRACE("(%d, %d, %d, %d, %p, %p, %p, %p, %p)\n",
first, last, step, chunksize, loops, begin, end, next, lastchunk);
+ if (!begin)
+ {
+ begin = &no_begin;
+ lastchunk = &no_lastchunk;
+ }
+
if (num_threads == 1 && chunksize != 1)
{
*loops = 1;
diff --git a/dlls/vcomp/tests/vcomp.c b/dlls/vcomp/tests/vcomp.c
index 96a3d9c20a8..a6912bbc0a2 100644
--- a/dlls/vcomp/tests/vcomp.c
+++ b/dlls/vcomp/tests/vcomp.c
@@ -1000,6 +1000,30 @@ static void CDECL for_static_cb(void)
p_vcomp_for_static_end();
p_vcomp_barrier();
+ loops = end = next = lastchunk = 0xdeadbeef;
+ p_vcomp_for_static_init(tests[i].first, tests[i].last, tests[i].step, tests[i].chunksize,
+ &loops, NULL, &end, &next, &lastchunk);
+
+ if (broken_flags & VCOMP_FOR_STATIC_BROKEN_LOOP)
+ {
+ ok(loops == 0 || loops == 1, "test %d, thread %d/%d: expected loops == 0 or 1, got %u\n",
+ i, thread_num, num_threads, loops);
+ }
+ else
+ {
+ ok(loops == my_loops, "test %d, thread %d/%d: expected loops == %u, got %u\n",
+ i, thread_num, num_threads, my_loops, loops);
+ ok(end == my_end, "test %d, thread %d/%d: expected end == %d, got %d\n",
+ i, thread_num, num_threads, my_end, end);
+ ok(next == my_next || broken(broken_flags & VCOMP_FOR_STATIC_BROKEN_NEXT),
+ "test %d, thread %d/%d: expected next == %d, got %d\n", i, thread_num, num_threads, my_next, next);
+ ok(lastchunk == 0xdeadbeef, "test %d, thread %d/%d: expected lastchunk == 0xdeadbeef, got %d\n",
+ i, thread_num, num_threads, lastchunk);
+ }
+
+ p_vcomp_for_static_end();
+ p_vcomp_barrier();
+
if (tests[i].first == tests[i].last) continue;
my_loops = my_begin = my_end = my_next = my_lastchunk = 0xdeadbeef;
@@ -1030,6 +1054,30 @@ static void CDECL for_static_cb(void)
p_vcomp_for_static_end();
p_vcomp_barrier();
+
+ loops = end = next = lastchunk = 0xdeadbeef;
+ p_vcomp_for_static_init(tests[i].last, tests[i].first, tests[i].step, tests[i].chunksize,
+ &loops, NULL, &end, &next, &lastchunk);
+
+ if (broken_flags & VCOMP_FOR_STATIC_BROKEN_LOOP)
+ {
+ ok(loops == 0 || loops == 1, "test %d, thread %d/%d: expected loops == 0 or 1, got %u\n",
+ i, thread_num, num_threads, loops);
+ }
+ else
+ {
+ ok(loops == my_loops, "test %d, thread %d/%d: expected loops == %u, got %u\n",
+ i, thread_num, num_threads, my_loops, loops);
+ ok(end == my_end, "test %d, thread %d/%d: expected end == %d, got %d\n",
+ i, thread_num, num_threads, my_end, end);
+ ok(next == my_next || broken(broken_flags & VCOMP_FOR_STATIC_BROKEN_NEXT),
+ "test %d, thread %d/%d: expected next == %d, got %d\n", i, thread_num, num_threads, my_next, next);
+ ok(lastchunk == 0xdeadbeef, "test %d, thread %d/%d: expected lastchunk == 0xdeadbeef, got %d\n",
+ i, thread_num, num_threads, lastchunk);
+ }
+
+ p_vcomp_for_static_end();
+ p_vcomp_barrier();
}
}
--
2.11.0

View File

@ -1 +0,0 @@
Fixes: Handle begin == NULL in _vcomp_for_static_init

View File

@ -1052,7 +1052,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
wined3d_device_delete_opengl_contexts(device);
if (device->fb.depth_stencil)
@@ -4107,6 +4120,7 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
@@ -4135,6 +4148,7 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
return WINED3DERR_INVALIDCALL;
}
@ -1060,7 +1060,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
if (dst_texture->sub_resources[dst_sub_resource_idx].map_count)
{
WARN("Destination sub-resource %u is mapped.\n", dst_sub_resource_idx);
@@ -4117,6 +4131,18 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
@@ -4145,6 +4159,18 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
{
WARN("Source sub-resource %u is mapped.\n", src_sub_resource_idx);
return WINED3DERR_INVALIDCALL;
@ -1079,7 +1079,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
}
if (!src_box)
@@ -5148,3 +5174,58 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
@@ -5176,3 +5202,58 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
else
return CallWindowProcA(proc, window, message, wparam, lparam);
}