winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
February 2018
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
804 discussions
Start a n
N
ew thread
Józef Kucia : d3d10core/tests: Add test for resource access flags.
by Alexandre Julliard
01 Feb '18
01 Feb '18
Module: wine Branch: master Commit: 6801cc140f776ea08f3a62680bc0d4f257626346 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=6801cc140f776ea08f3a6268…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Thu Feb 1 09:50:33 2018 +0100 d3d10core/tests: Add test for resource access flags. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d10core/tests/device.c | 330 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 330 insertions(+) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=6801cc140f776ea08f3a…
1
0
0
0
Józef Kucia : d3d11/tests: Add test for resource access flags.
by Alexandre Julliard
01 Feb '18
01 Feb '18
Module: wine Branch: master Commit: 34edee9039ab48b044bc20a5e55a415762cddd57 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=34edee9039ab48b044bc20a5…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Thu Feb 1 09:50:32 2018 +0100 d3d11/tests: Add test for resource access flags. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d11/tests/d3d11.c | 357 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 356 insertions(+), 1 deletion(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=34edee9039ab48b044bc…
1
0
0
0
Józef Kucia : d3d11: Validate resource access flags for buffers and 2D textures.
by Alexandre Julliard
01 Feb '18
01 Feb '18
Module: wine Branch: master Commit: a2fe3ff066e50e8f173544ad689ec342e127f482 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=a2fe3ff066e50e8f173544ad…
Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Thu Feb 1 09:50:31 2018 +0100 d3d11: Validate resource access flags for buffers and 2D textures. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3d11/buffer.c | 8 +++-- dlls/d3d11/d3d11_private.h | 4 +++ dlls/d3d11/texture.c | 8 +++-- dlls/d3d11/utils.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 104 insertions(+), 4 deletions(-) diff --git a/dlls/d3d11/buffer.c b/dlls/d3d11/buffer.c index 3ccccc8..ffa95a1 100644 --- a/dlls/d3d11/buffer.c +++ b/dlls/d3d11/buffer.c @@ -387,8 +387,12 @@ static const struct wined3d_parent_ops d3d_buffer_wined3d_parent_ops = d3d_buffer_wined3d_object_released, }; -static BOOL validate_buffer_desc(D3D11_BUFFER_DESC *desc) +static BOOL validate_buffer_desc(D3D11_BUFFER_DESC *desc, D3D_FEATURE_LEVEL feature_level) { + if (!validate_d3d11_resource_access_flags(D3D11_RESOURCE_DIMENSION_BUFFER, + desc->Usage, desc->BindFlags, desc->CPUAccessFlags, feature_level)) + return FALSE; + if (desc->MiscFlags & D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS) { if (desc->MiscFlags & D3D11_RESOURCE_MISC_BUFFER_STRUCTURED) @@ -442,7 +446,7 @@ static HRESULT d3d_buffer_init(struct d3d_buffer *buffer, struct d3d_device *dev buffer->refcount = 1; buffer->desc = *desc; - if (!validate_buffer_desc(&buffer->desc)) + if (!validate_buffer_desc(&buffer->desc, device->feature_level)) return E_INVALIDARG; wined3d_desc.byte_width = buffer->desc.ByteWidth; diff --git a/dlls/d3d11/d3d11_private.h b/dlls/d3d11/d3d11_private.h index c286e76..6702248 100644 --- a/dlls/d3d11/d3d11_private.h +++ b/dlls/d3d11/d3d11_private.h @@ -83,6 +83,10 @@ UINT d3d10_cpu_access_flags_from_d3d11_cpu_access_flags(UINT cpu_access_flags) D UINT d3d11_resource_misc_flags_from_d3d10_resource_misc_flags(UINT resource_misc_flags) DECLSPEC_HIDDEN; UINT d3d10_resource_misc_flags_from_d3d11_resource_misc_flags(UINT resource_misc_flags) DECLSPEC_HIDDEN; +BOOL validate_d3d11_resource_access_flags(D3D11_RESOURCE_DIMENSION resource_dimension, + D3D11_USAGE usage, UINT bind_flags, UINT cpu_access_flags, + D3D_FEATURE_LEVEL feature_level) DECLSPEC_HIDDEN; + HRESULT d3d_get_private_data(struct wined3d_private_store *store, REFGUID guid, UINT *data_size, void *data) DECLSPEC_HIDDEN; HRESULT d3d_set_private_data(struct wined3d_private_store *store, diff --git a/dlls/d3d11/texture.c b/dlls/d3d11/texture.c index 2644b52..a35a9ac 100644 --- a/dlls/d3d11/texture.c +++ b/dlls/d3d11/texture.c @@ -456,8 +456,12 @@ static BOOL is_gdi_compatible_texture(const D3D11_TEXTURE2D_DESC *desc) return TRUE; } -static BOOL validate_texture2d_desc(const D3D11_TEXTURE2D_DESC *desc) +static BOOL validate_texture2d_desc(const D3D11_TEXTURE2D_DESC *desc, D3D_FEATURE_LEVEL feature_level) { + if (!validate_d3d11_resource_access_flags(D3D11_RESOURCE_DIMENSION_TEXTURE2D, + desc->Usage, desc->BindFlags, desc->CPUAccessFlags, feature_level)) + return FALSE; + if (desc->MiscFlags & D3D11_RESOURCE_MISC_TEXTURECUBE && desc->ArraySize < 6) { @@ -492,7 +496,7 @@ HRESULT d3d_texture2d_create(struct d3d_device *device, const D3D11_TEXTURE2D_DE DWORD flags = 0; HRESULT hr; - if (!validate_texture2d_desc(desc)) + if (!validate_texture2d_desc(desc, device->feature_level)) { WARN("Failed to validate texture desc.\n"); return E_INVALIDARG; diff --git a/dlls/d3d11/utils.c b/dlls/d3d11/utils.c index ae761f4..b3894bb 100644 --- a/dlls/d3d11/utils.c +++ b/dlls/d3d11/utils.c @@ -610,6 +610,94 @@ UINT d3d10_resource_misc_flags_from_d3d11_resource_misc_flags(UINT resource_misc return d3d10_resource_misc_flags; } +static BOOL d3d11_bind_flags_are_gpu_read_only(UINT bind_flags) +{ + static const BOOL read_only_bind_flags = D3D11_BIND_VERTEX_BUFFER + | D3D11_BIND_INDEX_BUFFER | D3D11_BIND_CONSTANT_BUFFER + | D3D11_BIND_SHADER_RESOURCE; + + return !(bind_flags & ~read_only_bind_flags); +} + +BOOL validate_d3d11_resource_access_flags(D3D11_RESOURCE_DIMENSION resource_dimension, + D3D11_USAGE usage, UINT bind_flags, UINT cpu_access_flags, D3D_FEATURE_LEVEL feature_level) +{ + const BOOL is_texture = resource_dimension != D3D11_RESOURCE_DIMENSION_BUFFER; + + switch (usage) + { + case D3D11_USAGE_DEFAULT: + if ((bind_flags == D3D11_BIND_SHADER_RESOURCE && feature_level >= D3D_FEATURE_LEVEL_11_0) + || (is_texture && bind_flags == D3D11_BIND_RENDER_TARGET) + || bind_flags == D3D11_BIND_UNORDERED_ACCESS) + break; + if (cpu_access_flags) + { + WARN("Default resources are not CPU accessible.\n"); + return FALSE; + } + break; + + case D3D11_USAGE_IMMUTABLE: + if (!bind_flags) + { + WARN("Bind flags must be non-zero for immutable resources.\n"); + return FALSE; + } + if (!d3d11_bind_flags_are_gpu_read_only(bind_flags)) + { + WARN("Immutable resources cannot be writable by GPU.\n"); + return FALSE; + } + + if (cpu_access_flags) + { + WARN("Immutable resources are not CPU accessible.\n"); + return FALSE; + } + break; + + case D3D11_USAGE_DYNAMIC: + if (!bind_flags) + { + WARN("Bind flags must be non-zero for dynamic resources.\n"); + return FALSE; + } + if (!d3d11_bind_flags_are_gpu_read_only(bind_flags)) + { + WARN("Dynamic resources cannot be writable by GPU.\n"); + return FALSE; + } + + if (cpu_access_flags != D3D11_CPU_ACCESS_WRITE) + { + WARN("CPU access must be D3D11_CPU_ACCESS_WRITE for dynamic resources.\n"); + return FALSE; + } + break; + + case D3D11_USAGE_STAGING: + if (bind_flags) + { + WARN("Invalid bind flags %#x for staging resources.\n", bind_flags); + return FALSE; + } + + if (!cpu_access_flags) + { + WARN("CPU access must be non-zero for staging resources.\n"); + return FALSE; + } + break; + + default: + WARN("Invalid usage %#x.\n", usage); + return FALSE; + } + + return TRUE; +} + struct wined3d_resource *wined3d_resource_from_d3d11_resource(ID3D11Resource *resource) { D3D11_RESOURCE_DIMENSION dimension;
1
0
0
0
Fabian Maurer : kernel32: Add stub for ReOpenFile.
by Alexandre Julliard
01 Feb '18
01 Feb '18
Module: wine Branch: master Commit: 5eb13b24137d02f44cb1ef43804cb7a343340079 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=5eb13b24137d02f44cb1ef43…
Author: Fabian Maurer <dark.shadow4(a)web.de> Date: Wed Jan 24 21:51:42 2018 +0100 kernel32: Add stub for ReOpenFile. Signed-off-by: Fabian Maurer <dark.shadow4(a)web.de> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- .../api-ms-win-core-file-l2-1-0.spec | 2 +- .../api-ms-win-core-file-l2-1-1.spec | 2 +- .../api-ms-win-core-file-l2-1-2.spec | 2 +- dlls/kernel32/file.c | 10 ++++++++++ dlls/kernel32/kernel32.spec | 2 +- dlls/kernelbase/kernelbase.spec | 2 +- 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/dlls/api-ms-win-core-file-l2-1-0/api-ms-win-core-file-l2-1-0.spec b/dlls/api-ms-win-core-file-l2-1-0/api-ms-win-core-file-l2-1-0.spec index 3c1e59c..5272d4c 100644 --- a/dlls/api-ms-win-core-file-l2-1-0/api-ms-win-core-file-l2-1-0.spec +++ b/dlls/api-ms-win-core-file-l2-1-0/api-ms-win-core-file-l2-1-0.spec @@ -6,6 +6,6 @@ @ stdcall GetFileInformationByHandleEx(long long ptr long) kernel32.GetFileInformationByHandleEx @ stdcall MoveFileExW(wstr wstr long) kernel32.MoveFileExW @ stdcall MoveFileWithProgressW(wstr wstr ptr ptr long) kernel32.MoveFileWithProgressW -@ stub ReOpenFile +@ stdcall ReOpenFile(ptr long long long) kernel32.ReOpenFile @ stdcall ReadDirectoryChangesW(long ptr long long long ptr ptr ptr) kernel32.ReadDirectoryChangesW @ stdcall ReplaceFileW(wstr wstr wstr long ptr ptr) kernel32.ReplaceFileW diff --git a/dlls/api-ms-win-core-file-l2-1-1/api-ms-win-core-file-l2-1-1.spec b/dlls/api-ms-win-core-file-l2-1-1/api-ms-win-core-file-l2-1-1.spec index 6bfcb08..9cd8689 100644 --- a/dlls/api-ms-win-core-file-l2-1-1/api-ms-win-core-file-l2-1-1.spec +++ b/dlls/api-ms-win-core-file-l2-1-1/api-ms-win-core-file-l2-1-1.spec @@ -7,6 +7,6 @@ @ stdcall MoveFileExW(wstr wstr long) kernel32.MoveFileExW @ stdcall MoveFileWithProgressW(wstr wstr ptr ptr long) kernel32.MoveFileWithProgressW @ stdcall OpenFileById(long ptr long long ptr long) kernel32.OpenFileById -@ stub ReOpenFile +@ stdcall ReOpenFile(ptr long long long) kernel32.ReOpenFile @ stdcall ReadDirectoryChangesW(long ptr long long long ptr ptr ptr) kernel32.ReadDirectoryChangesW @ stdcall ReplaceFileW(wstr wstr wstr long ptr ptr) kernel32.ReplaceFileW diff --git a/dlls/api-ms-win-core-file-l2-1-2/api-ms-win-core-file-l2-1-2.spec b/dlls/api-ms-win-core-file-l2-1-2/api-ms-win-core-file-l2-1-2.spec index bee3c05..ab6f303 100644 --- a/dlls/api-ms-win-core-file-l2-1-2/api-ms-win-core-file-l2-1-2.spec +++ b/dlls/api-ms-win-core-file-l2-1-2/api-ms-win-core-file-l2-1-2.spec @@ -10,5 +10,5 @@ @ stdcall MoveFileWithProgressW(wstr wstr ptr ptr long) kernel32.MoveFileWithProgressW @ stdcall OpenFileById(long ptr long long ptr long) kernel32.OpenFileById @ stdcall ReadDirectoryChangesW(long ptr long long long ptr ptr ptr) kernel32.ReadDirectoryChangesW -@ stub ReOpenFile +@ stdcall ReOpenFile(ptr long long long) kernel32.ReOpenFile @ stdcall ReplaceFileW(wstr wstr wstr long ptr ptr) kernel32.ReplaceFileW diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c index 7196aff..1e5b9fe 100644 --- a/dlls/kernel32/file.c +++ b/dlls/kernel32/file.c @@ -2820,6 +2820,16 @@ HANDLE WINAPI OpenFileById( HANDLE handle, LPFILE_ID_DESCRIPTOR id, DWORD access return result; } +/*********************************************************************** + * ReOpenFile (KERNEL32.@) + */ +HANDLE WINAPI ReOpenFile(HANDLE handle_original, DWORD access, DWORD sharing, DWORD flags) +{ + FIXME("(%p, %d, %d, %d): stub\n", handle_original, access, sharing, flags); + + return INVALID_HANDLE_VALUE; +} + /*********************************************************************** * K32EnumDeviceDrivers (KERNEL32.@) diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 5ce6372..1137920 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -1267,7 +1267,7 @@ # @ stub RemoveLocalAlternateComputerNameW @ stdcall RemoveVectoredContinueHandler(ptr) ntdll.RtlRemoveVectoredContinueHandler @ stdcall RemoveVectoredExceptionHandler(ptr) ntdll.RtlRemoveVectoredExceptionHandler -# @ stub ReOpenFile +@ stdcall ReOpenFile(ptr long long long) ReOpenFile @ stdcall ReplaceFile(wstr wstr wstr long ptr ptr) ReplaceFileW @ stdcall ReplaceFileA(str str str long ptr ptr) @ stdcall ReplaceFileW(wstr wstr wstr long ptr ptr) diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index ca33bfd..eb6edbe 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -1233,7 +1233,7 @@ # @ stub QuirkIsEnabledForProcess @ stdcall RaiseException(long long long ptr) kernel32.RaiseException # @ stub RaiseFailFastException -# @ stub ReOpenFile +@ stdcall ReOpenFile(ptr long long long) kernel32.ReOpenFile @ stdcall ReadConsoleA(long ptr long ptr ptr) kernel32.ReadConsoleA @ stdcall ReadConsoleInputA(long ptr long ptr) kernel32.ReadConsoleInputA @ stub ReadConsoleInputExA
1
0
0
0
Paul Graham : kernel32: Fix failure reporting in WritePrivateProfile* and add tests.
by Alexandre Julliard
01 Feb '18
01 Feb '18
Module: wine Branch: master Commit: 39899fd11a8ff9228a587adf5e9aeaf2ded93c5c URL:
https://source.winehq.org/git/wine.git/?a=commit;h=39899fd11a8ff9228a587adf…
Author: Paul Graham <development(a)omega-software.com> Date: Sat Jan 27 21:11:10 2018 +0100 kernel32: Fix failure reporting in WritePrivateProfile* and add tests. Conformance tests based on work by Fabian Maurer, with some adaptations. Signed-off-by: Paul Graham <development(a)omega-software.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/kernel32/profile.c | 9 ++++----- dlls/kernel32/tests/profile.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/dlls/kernel32/profile.c b/dlls/kernel32/profile.c index aad3ba3..721808c 100644 --- a/dlls/kernel32/profile.c +++ b/dlls/kernel32/profile.c @@ -1391,7 +1391,7 @@ BOOL WINAPI WritePrivateProfileStringW( LPCWSTR section, LPCWSTR entry, SetLastError(ERROR_FILE_NOT_FOUND); } else { ret = PROFILE_SetString( section, entry, string, FALSE); - PROFILE_FlushFile(); + if (ret) ret = PROFILE_FlushFile(); } } @@ -1447,11 +1447,10 @@ BOOL WINAPI WritePrivateProfileSectionW( LPCWSTR section, else if (PROFILE_Open( filename, TRUE )) { if (!string) {/* delete the named section*/ ret = PROFILE_SetString(section,NULL,NULL, FALSE); - PROFILE_FlushFile(); } else { PROFILE_DeleteAllKeys(section); ret = TRUE; - while(*string) { + while(*string && ret) { LPWSTR buf = HeapAlloc( GetProcessHeap(), 0, (strlenW(string)+1) * sizeof(WCHAR) ); strcpyW( buf, string ); if((p = strchrW( buf, '='))) { @@ -1461,8 +1460,8 @@ BOOL WINAPI WritePrivateProfileSectionW( LPCWSTR section, HeapFree( GetProcessHeap(), 0, buf ); string += strlenW(string)+1; } - PROFILE_FlushFile(); } + if (ret) ret = PROFILE_FlushFile(); } RtlLeaveCriticalSection( &PROFILE_CritSect ); @@ -1744,7 +1743,7 @@ BOOL WINAPI WritePrivateProfileStructW (LPCWSTR section, LPCWSTR key, if (PROFILE_Open( filename, TRUE )) { ret = PROFILE_SetString( section, key, outstring, FALSE); - PROFILE_FlushFile(); + if (ret) ret = PROFILE_FlushFile(); } RtlLeaveCriticalSection( &PROFILE_CritSect ); diff --git a/dlls/kernel32/tests/profile.c b/dlls/kernel32/tests/profile.c index 2eb90a8..17ba124 100644 --- a/dlls/kernel32/tests/profile.c +++ b/dlls/kernel32/tests/profile.c @@ -25,6 +25,7 @@ #include "windef.h" #include "winbase.h" #include "windows.h" +#include "sddl.h" #define KEY "ProfileInt" #define SECTION "Test" @@ -534,6 +535,41 @@ static BOOL emptystr_ok(CHAR emptystr[MAX_PATH]) return TRUE; } +static void test_profile_directory_readonly(void) +{ + BOOL ret; + CHAR path_folder[MAX_PATH]; + CHAR path_file[MAX_PATH]; + const char *sddl_string_everyone_readonly = "D:PAI(A;;0x1200a9;;;WD)"; + SECURITY_ATTRIBUTES attributes = {0}; + char lpStruct[] = { 's', 't', 'r', 'i', 'n', 'g' }; + + attributes.nLength = sizeof(attributes); + ret = ConvertStringSecurityDescriptorToSecurityDescriptorA(sddl_string_everyone_readonly, SDDL_REVISION_1, &attributes.lpSecurityDescriptor, NULL); + ok(ret == TRUE, "ConvertStringSecurityDescriptorToSecurityDescriptor failed: %d\n", GetLastError()); + + GetTempPathA(MAX_PATH, path_folder); + lstrcatA(path_folder, "wine-test"); + + strcpy(path_file, path_folder); + lstrcatA(path_file, "\\tmp.ini"); + + ret = CreateDirectoryA(path_folder, &attributes); + ok(ret == TRUE, "CreateDirectoryA failed: %d\n", GetLastError()); + + ret = WritePrivateProfileStringA("App", "key", "string", path_file); + ok(ret == FALSE, "Expected FALSE, got %d\n", ret); + + ret = WritePrivateProfileSectionA("App", "key=string", path_file); + ok(ret == FALSE, "Expected FALSE, got %d\n", ret); + + ret = WritePrivateProfileStructA("App", "key", lpStruct, sizeof(lpStruct), path_file); + ok(ret == FALSE, "Expected FALSE, got %d\n", ret); + + ret = RemoveDirectoryA(path_folder); + ok(ret == TRUE, "RemoveDirectoryA failed: %d\n", GetLastError()); +} + static void test_GetPrivateProfileString(const char *content, const char *descript) { DWORD ret, len; @@ -1132,6 +1168,7 @@ START_TEST(profile) test_profile_existing(); test_profile_delete_on_close(); test_profile_refresh(); + test_profile_directory_readonly(); test_GetPrivateProfileString( "[section1]\r\n" "name1=val1\r\n"
1
0
0
0
Alex Henrie : crypt32/tests: Drop store test workarounds for Windows <= 2000.
by Alexandre Julliard
01 Feb '18
01 Feb '18
Module: wine Branch: master Commit: 030e4db2e459365e7c179281d9f1fb9758351123 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=030e4db2e459365e7c179281…
Author: Alex Henrie <alexhenrie24(a)gmail.com> Date: Tue Jan 30 11:08:15 2018 -0700 crypt32/tests: Drop store test workarounds for Windows <= 2000. Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/crypt32/tests/store.c | 340 +++++++++++++++------------------------------ 1 file changed, 111 insertions(+), 229 deletions(-) Diff:
https://source.winehq.org/git/wine.git/?a=commitdiff;h=030e4db2e459365e7c17…
1
0
0
0
Alex Henrie : include: Add CertRegisterSystemStore and CertUnregisterSystemStore.
by Alexandre Julliard
01 Feb '18
01 Feb '18
Module: wine Branch: master Commit: f0da42f7f622958b6954a1d94bcab9f30847383a URL:
https://source.winehq.org/git/wine.git/?a=commit;h=f0da42f7f622958b6954a1d9…
Author: Alex Henrie <alexhenrie24(a)gmail.com> Date: Tue Jan 30 11:08:14 2018 -0700 include: Add CertRegisterSystemStore and CertUnregisterSystemStore. Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/crypt32/store.c | 2 +- include/wincrypt.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dlls/crypt32/store.c b/dlls/crypt32/store.c index 91a3cbc..bc4ebde 100644 --- a/dlls/crypt32/store.c +++ b/dlls/crypt32/store.c @@ -1414,7 +1414,7 @@ BOOL WINAPI CertRegisterSystemStore(const void *pvSystemStore, DWORD dwFlags, return FALSE; } -BOOL WINAPI CertUnregisterSystemStore(void *pvSystemStore, DWORD dwFlags) +BOOL WINAPI CertUnregisterSystemStore(const void *pvSystemStore, DWORD dwFlags) { HCERTSTORE hstore; diff --git a/include/wincrypt.h b/include/wincrypt.h index d688567..6e71fb9 100644 --- a/include/wincrypt.h +++ b/include/wincrypt.h @@ -4087,6 +4087,11 @@ BOOL WINAPI CertEnumSystemStoreLocation(DWORD dwFlags, void *pvArg, BOOL WINAPI CertEnumSystemStore(DWORD dwFlags, void *pvSystemStoreLocationPara, void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE pfnEnum); +BOOL WINAPI CertRegisterSystemStore(const void *store, DWORD flags, + CERT_SYSTEM_STORE_INFO *info, void *reserved); + +BOOL WINAPI CertUnregisterSystemStore(const void *store, DWORD flags); + BOOL WINAPI CertEnumPhysicalStore(const void *pvSystemStore, DWORD dwFlags, void *pvArg, PFN_CERT_ENUM_PHYSICAL_STORE pfnEnum);
1
0
0
0
Austin English : kernel32: Add QueryProcessCycleTime stub.
by Alexandre Julliard
01 Feb '18
01 Feb '18
Module: wine Branch: master Commit: db5a57c5f203aefad7c72ed49c96875bff1a1fbd URL:
https://source.winehq.org/git/wine.git/?a=commit;h=db5a57c5f203aefad7c72ed4…
Author: Austin English <austinenglish(a)gmail.com> Date: Tue Jan 30 16:29:44 2018 -0600 kernel32: Add QueryProcessCycleTime stub. Signed-off-by: Austin English <austinenglish(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- .../api-ms-win-core-realtime-l1-1-0.spec | 2 +- dlls/kernel32/kernel32.spec | 2 +- dlls/kernel32/time.c | 12 ++++++++++++ dlls/kernelbase/kernelbase.spec | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/dlls/api-ms-win-core-realtime-l1-1-0/api-ms-win-core-realtime-l1-1-0.spec b/dlls/api-ms-win-core-realtime-l1-1-0/api-ms-win-core-realtime-l1-1-0.spec index 9c70db1..0def2d7 100644 --- a/dlls/api-ms-win-core-realtime-l1-1-0/api-ms-win-core-realtime-l1-1-0.spec +++ b/dlls/api-ms-win-core-realtime-l1-1-0/api-ms-win-core-realtime-l1-1-0.spec @@ -1,5 +1,5 @@ @ stub QueryIdleProcessorCycleTime @ stub QueryIdleProcessorCycleTimeEx -@ stub QueryProcessCycleTime +@ stdcall QueryProcessCycleTime(long ptr) kernel32.QueryProcessCycleTime @ stdcall QueryThreadCycleTime(long ptr) kernel32.QueryThreadCycleTime @ stdcall QueryUnbiasedInterruptTime(ptr) kernel32.QueryUnbiasedInterruptTime diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 2c719d4..5ce6372 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -1171,7 +1171,7 @@ @ stdcall QueryPerformanceCounter(ptr) @ stdcall QueryPerformanceFrequency(ptr) # @ stub QueryProcessAffinityUpdateMode -# @ stub QueryProcessCycleTime +@ stdcall QueryProcessCycleTime(long ptr) @ stdcall QueryThreadCycleTime(long ptr) # @ stub QueryThreadProfiling # @ stub QueryThreadpoolStackInformation diff --git a/dlls/kernel32/time.c b/dlls/kernel32/time.c index fbe5811..b0b8669 100644 --- a/dlls/kernel32/time.c +++ b/dlls/kernel32/time.c @@ -1408,6 +1408,18 @@ DWORD WINAPI GetDynamicTimeZoneInformation(DYNAMIC_TIME_ZONE_INFORMATION *tzinfo } /*********************************************************************** + * QueryProcessCycleTime (KERNEL32.@) + */ +BOOL WINAPI QueryProcessCycleTime(HANDLE process, PULONG64 cycle) +{ + static int once; + if (!once++) + FIXME("(%p,%p): stub!\n", process, cycle); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; +} + +/*********************************************************************** * QueryThreadCycleTime (KERNEL32.@) */ BOOL WINAPI QueryThreadCycleTime(HANDLE thread, PULONG64 cycle) diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index b9eb4fc..ca33bfd 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -1206,7 +1206,7 @@ @ stdcall QueryPerformanceCounter(ptr) kernel32.QueryPerformanceCounter @ stdcall QueryPerformanceFrequency(ptr) kernel32.QueryPerformanceFrequency @ stub QueryProcessAffinityUpdateMode -# @ stub QueryProcessCycleTime +@ stdcall QueryProcessCycleTime(long ptr) kernel32.QueryProcessCycleTime # @ stub QueryProtectedPolicy @ stub QuerySecurityAccessMask # @ stub QueryStateAtomValueInfo
1
0
0
0
Francois Gouget : dxgi: Fix a trailing '\n' in a FIXME().
by Alexandre Julliard
01 Feb '18
01 Feb '18
Module: wine Branch: master Commit: 3000ac56edbe6dd945fd69515d69ad009bd2f76f URL:
https://source.winehq.org/git/wine.git/?a=commit;h=3000ac56edbe6dd945fd6951…
Author: Francois Gouget <fgouget(a)free.fr> Date: Wed Jan 31 03:41:20 2018 +0100 dxgi: Fix a trailing '\n' in a FIXME(). Signed-off-by: Francois Gouget <fgouget(a)free.fr> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dxgi/factory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/dxgi/factory.c b/dlls/dxgi/factory.c index 267b11b..832e2cb 100644 --- a/dlls/dxgi/factory.c +++ b/dlls/dxgi/factory.c @@ -379,7 +379,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_factory_RegisterStereoStatusEvent(IDXGIFac static void STDMETHODCALLTYPE dxgi_factory_UnregisterStereoStatus(IDXGIFactory4 *iface, DWORD cookie) { - FIXME("iface %p, cookie %#x stub!n", iface, cookie); + FIXME("iface %p, cookie %#x stub!\n", iface, cookie); } static HRESULT STDMETHODCALLTYPE dxgi_factory_RegisterStereoStatusWindow(IDXGIFactory4 *iface,
1
0
0
0
Alexandre Julliard : wineandroid: Force non-zero state on ACTION_BUTTON_RELEASE to avoid duplicate events.
by Alexandre Julliard
01 Feb '18
01 Feb '18
Module: wine Branch: master Commit: 6a4fa30e4cbb714814ae1d1941004730646b1a5e URL:
https://source.winehq.org/git/wine.git/?a=commit;h=6a4fa30e4cbb714814ae1d19…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Thu Feb 1 16:06:13 2018 +0100 wineandroid: Force non-zero state on ACTION_BUTTON_RELEASE to avoid duplicate events. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/wineandroid.drv/window.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dlls/wineandroid.drv/window.c b/dlls/wineandroid.drv/window.c index 7d2049d..aff687b 100644 --- a/dlls/wineandroid.drv/window.c +++ b/dlls/wineandroid.drv/window.c @@ -293,6 +293,9 @@ jboolean motion_event( JNIEnv *env, jobject obj, jint win, jint action, jint x, mask == AMOTION_EVENT_ACTION_BUTTON_RELEASE )) return JNI_FALSE; + /* make sure a subsequent AMOTION_EVENT_ACTION_UP is not treated as a touch event */ + if (mask == AMOTION_EVENT_ACTION_BUTTON_RELEASE) state |= 0x80000000; + prev_state = InterlockedExchange( &button_state, state ); data.type = MOTION_EVENT;
1
0
0
0
← Newer
1
...
74
75
76
77
78
79
80
81
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Results per page:
10
25
50
100
200