Rebase against c26284168ccf53e657bdfbedffd4ef13698688c8.

[msvcr120-strof]
Removed patch to implement msvcr120.strtof and _strtof_l (accepted upstream).
This commit is contained in:
Sebastian Lackner 2016-02-19 20:08:55 +01:00
parent 290a4cf54c
commit 858ca1d0f3
8 changed files with 79 additions and 297 deletions

View File

@ -1,4 +1,4 @@
From 6092670380abae9d9e773d6c8d75b55c5fe8be80 Mon Sep 17 00:00:00 2001
From 58997b0ea80c550b399bddb5d2a1629ec8c5c6b5 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Thu, 18 Feb 2016 12:18:01 +0100
Subject: gdi32: Add support for paths on a metafile HDC.
@ -74,18 +74,18 @@ index e09cd0b..166b6b2 100644
if (!count) return TRUE;
if (flags & ETO_GLYPH_INDEX) ggo_flags |= GGO_GLYPH_INDEX;
diff --git a/dlls/gdi32/tests/metafile.c b/dlls/gdi32/tests/metafile.c
index 6804a96..07dac13 100644
index f464720..865853e 100644
--- a/dlls/gdi32/tests/metafile.c
+++ b/dlls/gdi32/tests/metafile.c
@@ -3386,7 +3386,7 @@ static void test_emf_GetPath(void)
@@ -3422,7 +3422,7 @@ static void test_emf_GetPath(void)
EndPath(hdcMetafile);
size = GetPath(hdcMetafile, NULL, NULL, 0);
- todo_wine ok( size == 5, "GetPath returned %d.\n", size);
+ ok( size == 5, "GetPath returned %d.\n", size);
- todo_wine ok( size == 9, "GetPath returned %d.\n", size);
+ ok( size == 9, "GetPath returned %d.\n", size);
hemf = CloseEnhMetaFile(hdcMetafile);
ok(hemf != 0, "CloseEnhMetaFile error %d\n", GetLastError());
--
2.7.1
2.7.0

View File

@ -1,218 +0,0 @@
From 3643749b0652684231f2c3d7b522abac4adc239d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bernhard=20=C3=9Cbelacker?= <bernhardu@vr-web.de>
Date: Fri, 14 Aug 2015 04:44:07 +0200
Subject: msvcr120: Implement strtof and _strtof_l (try 3)
SuperTux 0.3.5a needs msvcr120.strtof.
Found during research for bug #39034.
Changes try 3:
- Avoid almost_equal with float, instead use compare_float from ddraw7 tests
(thanks Henri Verbeet)
- Used functions should be available in all versions of msvcr120;
therefore avoid the win_skips. (thanks Piotr Caban)
Changes try 2:
- In the test replaced the bit pattern comparison to detect
infinity by msvcr120._finite
(thanks Piotr Caban; _finitef is just available at arm and x86_64)
A note to the tests:
It seems because the functions get dynamically loaded the functions
_errno() and p__errno() returning different variables.
Therefore using also the dynamically loaded p__errno() in tests.
The executable built via make crosstest is linked against msvcrt.dll.
---
dlls/msvcr120/msvcr120.spec | 4 +--
dlls/msvcr120/tests/msvcr120.c | 69 +++++++++++++++++++++++++++++++++++++
dlls/msvcr120_app/msvcr120_app.spec | 4 +--
dlls/msvcrt/string.c | 16 +++++++++
4 files changed, 89 insertions(+), 4 deletions(-)
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
index 9931820..330a83f 100644
--- a/dlls/msvcr120/msvcr120.spec
+++ b/dlls/msvcr120/msvcr120.spec
@@ -1731,7 +1731,7 @@
@ cdecl _strtime(ptr) MSVCRT__strtime
@ cdecl _strtime_s(ptr long)
@ cdecl _strtod_l(str ptr ptr) MSVCRT_strtod_l
-@ stub _strtof_l
+@ cdecl _strtof_l(str ptr ptr) MSVCRT_strtof_l
@ cdecl -ret64 _strtoi64(str ptr long) MSVCRT_strtoi64
@ cdecl -ret64 _strtoi64_l(str ptr long ptr) MSVCRT_strtoi64_l
@ stub _strtoimax_l
@@ -2386,7 +2386,7 @@
@ cdecl strspn(str str) ntdll.strspn
@ cdecl strstr(str str) MSVCRT_strstr
@ cdecl strtod(str ptr) MSVCRT_strtod
-@ stub strtof
+@ cdecl strtof(str ptr) MSVCRT_strtof
@ stub strtoimax
@ cdecl strtok(str str) MSVCRT_strtok
@ cdecl strtok_s(ptr str ptr) MSVCRT_strtok_s
diff --git a/dlls/msvcr120/tests/msvcr120.c b/dlls/msvcr120/tests/msvcr120.c
index aa78c4f..bce8aff 100644
--- a/dlls/msvcr120/tests/msvcr120.c
+++ b/dlls/msvcr120/tests/msvcr120.c
@@ -21,6 +21,8 @@
#include <stdlib.h>
#include <wchar.h>
#include <stdio.h>
+#include <float.h>
+#include <limits.h>
#include <windef.h>
#include <winbase.h>
@@ -73,6 +75,11 @@ struct MSVCRT_lconv
wchar_t* _W_negative_sign;
};
+static inline BOOL almost_equal(float d1, float d2)
+{
+ return (d1-d2 > -1e-15 && d1-d2 < 1e-15);
+}
+
static char* (CDECL *p_setlocale)(int category, const char* locale);
static struct MSVCRT_lconv* (CDECL *p_localeconv)(void);
static size_t (CDECL *p_wcstombs_s)(size_t *ret, char* dest, size_t sz, const wchar_t* src, size_t max);
@@ -83,6 +90,8 @@ static wchar_t** (CDECL *p____lc_locale_name_func)(void);
static unsigned int (CDECL *p__GetConcurrency)(void);
static void* (CDECL *p__W_Gettnames)(void);
static void (CDECL *p_free)(void*);
+static float (CDECL *p__strtof_l)(const char *, char **, _locale_t);
+static float (CDECL *p_strtof)(const char *, char **);
static BOOL init(void)
{
@@ -105,6 +114,8 @@ static BOOL init(void)
p__GetConcurrency = (void*)GetProcAddress(module,"?_GetConcurrency@details@Concurrency@@YAIXZ");
p__W_Gettnames = (void*)GetProcAddress(module, "_W_Gettnames");
p_free = (void*)GetProcAddress(module, "free");
+ p__strtof_l = (void*)GetProcAddress(module, "_strtof_l");
+ p_strtof = (void*)GetProcAddress(module, "strtof");
return TRUE;
}
@@ -321,6 +332,63 @@ static void test__W_Gettnames(void)
p_setlocale(LC_ALL, "C");
}
+static void test__strtof(void)
+{
+ const char float1[] = "12.1";
+ const char float2[] = "3.402823466e+38"; /* FLT_MAX */
+ const char float3[] = "-3.402823466e+38";
+ const char float4[] = "1.7976931348623158e+308"; /* DBL_MAX */
+ const char float5[] = "-1.7976931348623158e+308";
+
+ char *end;
+ float f;
+
+ f = FLT_MAX * FLT_MAX;
+ ok(_finite(f) == 0, "_finite failed\n");
+
+ /* strtof */
+ f = p_strtof(float1, &end);
+ ok(almost_equal(f, 12.1), "f = %lf\n", f);
+ ok(end == float1+4, "incorrect end (%d)\n", (int)(end-float1));
+
+ f = p_strtof(float2, &end);
+ ok(almost_equal(f, FLT_MAX), "f = %lf\n", f);
+ ok(end == float2+15, "incorrect end (%d)\n", (int)(end-float2));
+
+ f = p_strtof(float3, &end);
+ ok(almost_equal(f, -FLT_MAX), "f = %lf\n", f);
+ ok(end == float3+16, "incorrect end (%d)\n", (int)(end-float3));
+
+ f = p_strtof(float4, &end);
+ ok(_finite(f) == 0, "f = %lf\n", f);
+ ok(end == float4+23, "incorrect end (%d)\n", (int)(end-float4));
+
+ f = p_strtof(float5, &end);
+ ok(_finite(f) == 0, "f = %lf\n", f);
+ ok(end == float5+24, "incorrect end (%d)\n", (int)(end-float5));
+
+ /* _strtof_l */
+ f = p__strtof_l(float1, &end, NULL);
+ ok(almost_equal(f, 12.1), "f = %lf\n", f);
+ ok(end == float1+4, "incorrect end (%d)\n", (int)(end-float1));
+
+ f = p__strtof_l(float2, &end, NULL);
+ ok(almost_equal(f, FLT_MAX), "f = %lf\n", f);
+ ok(end == float2+15, "incorrect end (%d)\n", (int)(end-float2));
+
+ f = p__strtof_l(float3, &end, NULL);
+ ok(almost_equal(f, -FLT_MAX), "f = %lf\n", f);
+ ok(end == float3+16, "incorrect end (%d)\n", (int)(end-float3));
+
+ f = p__strtof_l(float4, &end, NULL);
+ ok(_finite(f) == 0, "f = %lf\n", f);
+ ok(end == float4+23, "incorrect end (%d)\n", (int)(end-float4));
+
+ f = p__strtof_l(float5, &end, NULL);
+ ok(_finite(f) == 0, "f = %lf\n", f);
+ ok(end == float5+24, "incorrect end (%d)\n", (int)(end-float5));
+}
+
START_TEST(msvcr120)
{
if (!init()) return;
@@ -330,4 +398,5 @@ START_TEST(msvcr120)
test____lc_locale_name_func();
test__GetConcurrency();
test__W_Gettnames();
+ test__strtof();
}
diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec
index 50066ed..28c929d 100644
--- a/dlls/msvcr120_app/msvcr120_app.spec
+++ b/dlls/msvcr120_app/msvcr120_app.spec
@@ -1442,7 +1442,7 @@
@ cdecl _strtime(ptr) msvcr120._strtime
@ cdecl _strtime_s(ptr long) msvcr120._strtime_s
@ cdecl _strtod_l(str ptr ptr) msvcr120._strtod_l
-@ stub _strtof_l
+@ cdecl _strtof_l(str ptr ptr) msvcr120._strtof_l
@ cdecl -ret64 _strtoi64(str ptr long) msvcr120._strtoi64
@ cdecl -ret64 _strtoi64_l(str ptr long ptr) msvcr120._strtoi64_l
@ stub _strtoimax_l
@@ -2049,7 +2049,7 @@
@ cdecl strspn(str str) msvcr120.strspn
@ cdecl strstr(str str) msvcr120.strstr
@ cdecl strtod(str ptr) msvcr120.strtod
-@ stub strtof
+@ cdecl strtof(str ptr) msvcr120.strtof
@ stub strtoimax
@ cdecl strtok(str str) msvcr120.strtok
@ cdecl strtok_s(ptr str ptr) msvcr120.strtok_s
diff --git a/dlls/msvcrt/string.c b/dlls/msvcrt/string.c
index f44ac52..9961549 100644
--- a/dlls/msvcrt/string.c
+++ b/dlls/msvcrt/string.c
@@ -497,6 +497,22 @@ double CDECL MSVCRT_strtod( const char *str, char **end )
}
/*********************************************************************
+ * strtof_l (MSVCRT.@)
+ */
+float CDECL MSVCRT_strtof_l( const char *str, char **end, MSVCRT__locale_t locale )
+{
+ return MSVCRT_strtod_l(str, end, locale);
+}
+
+/*********************************************************************
+ * strtof (MSVCRT.@)
+ */
+float CDECL MSVCRT_strtof( const char *str, char **end )
+{
+ return MSVCRT_strtof_l(str, end, NULL);
+}
+
+/*********************************************************************
* atof (MSVCRT.@)
*/
double CDECL MSVCRT_atof( const char *str )
--
2.6.4

View File

@ -1 +0,0 @@
Fixes: [39908] Implement msvcr120.strtof and _strtof_l

View File

@ -1,4 +1,4 @@
From f94504464e6c2ec7a2071912536ca444c38c6996 Mon Sep 17 00:00:00 2001
From ed679be63daa15df932fa6aae550af4c11a4a66d Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Tue, 19 Aug 2014 22:10:49 -0600
Subject: ntdll: Implement retrieving DOS attributes in NtQueryInformationFile.
@ -13,14 +13,18 @@ Subject: ntdll: Implement retrieving DOS attributes in NtQueryInformationFile.
create mode 100644 libs/port/xattr.c
diff --git a/configure.ac b/configure.ac
index 2fa4dcc..3c91af3 100644
index c9445e7..e118600 100644
--- a/configure.ac
+++ b/configure.ac
@@ -77,2 +77,3 @@ AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]))
@@ -76,6 +76,7 @@ AC_ARG_WITH(pulse, AS_HELP_STRING([--without-pulse],[do not use PulseAudio s
AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)]))
AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]))
AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)]))
+AC_ARG_WITH(xattr, AS_HELP_STRING([--without-xattr],[do not use xattr (security attributes support)]))
AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
@@ -667,6 +668,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
AC_ARG_WITH(xcursor, AS_HELP_STRING([--without-xcursor],[do not use the Xcursor extension]),
@@ -674,6 +675,17 @@ AC_CHECK_HEADERS([libprocstat.h],,,
#include <sys/socket.h>
#endif])
@ -39,10 +43,10 @@ index 2fa4dcc..3c91af3 100644
AC_SUBST(dlldir,"\${libdir}/wine")
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index b856b3d..83d07e2 100644
index a17151d..1f132ee 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -103,6 +103,22 @@ mode_t FILE_umask = 0;
@@ -117,6 +117,22 @@ mode_t FILE_umask = 0;
static const WCHAR ntfsW[] = {'N','T','F','S'};
@ -65,7 +69,7 @@ index b856b3d..83d07e2 100644
/* fetch the attributes of a file */
static inline ULONG get_file_attributes( const struct stat *st )
{
@@ -120,12 +136,16 @@ static inline ULONG get_file_attributes( const struct stat *st )
@@ -134,12 +150,16 @@ static inline ULONG get_file_attributes( const struct stat *st )
/* get the stat info and file attributes for a file (by file descriptor) */
int fd_get_file_info( int fd, struct stat *st, ULONG *attr )
{
@ -84,7 +88,7 @@ index b856b3d..83d07e2 100644
}
diff --git a/include/wine/port.h b/include/wine/port.h
index 3548a44..521246b 100644
index 2989b39..3219a8a 100644
--- a/include/wine/port.h
+++ b/include/wine/port.h
@@ -363,6 +363,14 @@ extern int mkstemps(char *template, int suffix_len);
@ -103,15 +107,15 @@ index 3548a44..521246b 100644
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
diff --git a/libs/port/Makefile.in b/libs/port/Makefile.in
index 65f1714..67efbc7 100644
index 9d7e44f..8b41050 100644
--- a/libs/port/Makefile.in
+++ b/libs/port/Makefile.in
@@ -23,4 +23,5 @@ C_SRCS = \
strerror.c \
strncasecmp.c \
@@ -104,4 +104,5 @@ C_SRCS = \
symlink.c \
- usleep.c
+ usleep.c \
usleep.c \
utf8.c \
- wctomb.c
+ wctomb.c \
+ xattr.c
diff --git a/libs/port/xattr.c b/libs/port/xattr.c
new file mode 100644
@ -159,5 +163,5 @@ index 0000000..94b7713
+#endif
+}
--
1.9.1
2.7.0

View File

@ -1,4 +1,4 @@
From 6d37527a75b5526ecaaf2a1039b7d9aa9e7dd57b Mon Sep 17 00:00:00 2001
From d6ce4357c4a5600f33e24df046e9a24fcfb71bf2 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 28 Sep 2014 22:42:46 +0200
Subject: ntdll: Throw exception if invalid handle is passed to NtClose and
@ -62,7 +62,7 @@ index 1279f2b..35c3672 100644
}
diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
index 94ccd7a..6fffef0 100644
index 64f3dff..56940c3 100644
--- a/dlls/ntdll/tests/exception.c
+++ b/dlls/ntdll/tests/exception.c
@@ -52,6 +52,7 @@ static NTSTATUS (WINAPI *pNtTerminateProcess)(HANDLE handle, LONG exit_code);
@ -73,11 +73,11 @@ index 94ccd7a..6fffef0 100644
#if defined(__x86_64__)
static BOOLEAN (CDECL *pRtlAddFunctionTable)(RUNTIME_FUNCTION*, DWORD, DWORD64);
@@ -952,6 +953,16 @@ static void test_debugger(void)
@@ -963,6 +964,16 @@ static void test_debugger(void)
if (stage == 8) continuestatus = DBG_EXCEPTION_NOT_HANDLED;
if (stage == 10) continuestatus = DBG_EXCEPTION_NOT_HANDLED;
}
+ else if (stage == 9 || stage == 10)
+ else if (stage == 11 || stage == 12)
+ {
+ ok(de.u.Exception.ExceptionRecord.ExceptionCode == EXCEPTION_INVALID_HANDLE,
+ "unexpected exception code %08x, expected %08x\n", de.u.Exception.ExceptionRecord.ExceptionCode,
@ -85,12 +85,12 @@ index 94ccd7a..6fffef0 100644
+ ok(de.u.Exception.ExceptionRecord.NumberParameters == 0,
+ "unexpected number of parameters %d, expected 0\n", de.u.Exception.ExceptionRecord.NumberParameters);
+
+ if (stage == 10) continuestatus = DBG_EXCEPTION_NOT_HANDLED;
+ if (stage == 12) continuestatus = DBG_EXCEPTION_NOT_HANDLED;
+ }
else
ok(FALSE, "unexpected stage %x\n", stage);
@@ -2049,6 +2060,53 @@ static void test_debug_service(DWORD numexc)
@@ -2115,6 +2126,53 @@ static void test_breakpoint(DWORD numexc)
pRtlRemoveVectoredExceptionHandler(vectored_handler);
}
@ -144,7 +144,7 @@ index 94ccd7a..6fffef0 100644
static void test_vectored_continue_handler(void)
{
PVOID handler1, handler2;
@@ -2101,6 +2159,7 @@ START_TEST(exception)
@@ -2167,6 +2225,7 @@ START_TEST(exception)
pNtGetContextThread = (void *)GetProcAddress( hntdll, "NtGetContextThread" );
pNtSetContextThread = (void *)GetProcAddress( hntdll, "NtSetContextThread" );
pNtReadVirtualMemory = (void *)GetProcAddress( hntdll, "NtReadVirtualMemory" );
@ -152,33 +152,33 @@ index 94ccd7a..6fffef0 100644
pRtlUnwind = (void *)GetProcAddress( hntdll, "RtlUnwind" );
pRtlRaiseException = (void *)GetProcAddress( hntdll, "RtlRaiseException" );
pNtTerminateProcess = (void *)GetProcAddress( hntdll, "NtTerminateProcess" );
@@ -2172,6 +2231,10 @@ START_TEST(exception)
test_debug_service(0);
test_stage = 8;
test_debug_service(1);
+ test_stage = 9;
@@ -2242,6 +2301,10 @@ START_TEST(exception)
test_breakpoint(0);
test_stage = 10;
test_breakpoint(1);
+ test_stage = 11;
+ test_closehandle(0);
+ test_stage = 10;
+ test_stage = 12;
+ test_closehandle(1);
}
else
skip( "RtlRaiseException not found\n" );
@@ -2187,6 +2250,7 @@ START_TEST(exception)
test_outputdebugstring(1, FALSE);
@@ -2258,6 +2321,7 @@ START_TEST(exception)
test_ripevent(1);
test_debug_service(1);
test_breakpoint(1);
+ test_closehandle(0);
test_vectored_continue_handler();
test_debugger();
test_simd_exceptions();
@@ -2208,6 +2272,7 @@ START_TEST(exception)
test_outputdebugstring(1, FALSE);
@@ -2280,6 +2344,7 @@ START_TEST(exception)
test_ripevent(1);
test_debug_service(1);
test_breakpoint(1);
+ test_closehandle(0);
test_vectored_continue_handler();
test_virtual_unwind();
--
2.7.1
2.7.0

View File

@ -1,4 +1,4 @@
From 24afda46f52586aebc91430294ff87620606ebba Mon Sep 17 00:00:00 2001
From 6ee41ac52713ab965e458f4c86793d49980ebb21 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 28 Sep 2014 23:39:51 +0200
Subject: ntdll: OutputDebugString should throw the exception a second time, if
@ -38,10 +38,10 @@ index d4d66b2..981661b 100644
if (!mutex_inited)
{
diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
index 6fffef0..d92ba2a 100644
index 56940c3..71f5985 100644
--- a/dlls/ntdll/tests/exception.c
+++ b/dlls/ntdll/tests/exception.c
@@ -1813,7 +1813,7 @@ static LONG CALLBACK outputdebugstring_vectored_handler(EXCEPTION_POINTERS *Exce
@@ -1824,7 +1824,7 @@ static LONG CALLBACK outputdebugstring_vectored_handler(EXCEPTION_POINTERS *Exce
return EXCEPTION_CONTINUE_SEARCH;
}
@ -50,7 +50,7 @@ index 6fffef0..d92ba2a 100644
{
PVOID vectored_handler;
@@ -1829,7 +1829,6 @@ static void test_outputdebugstring(DWORD numexc, BOOL todo)
@@ -1840,7 +1840,6 @@ static void test_outputdebugstring(DWORD numexc, BOOL todo)
outputdebugstring_exceptions = 0;
OutputDebugStringA("Hello World");
@ -58,7 +58,7 @@ index 6fffef0..d92ba2a 100644
ok(outputdebugstring_exceptions == numexc, "OutputDebugStringA generated %d exceptions, expected %d\n",
outputdebugstring_exceptions, numexc);
@@ -2220,9 +2219,9 @@ START_TEST(exception)
@@ -2286,9 +2285,9 @@ START_TEST(exception)
run_rtlraiseexception_test(EXCEPTION_BREAKPOINT);
run_rtlraiseexception_test(EXCEPTION_INVALID_HANDLE);
test_stage = 3;
@ -70,7 +70,7 @@ index 6fffef0..d92ba2a 100644
test_stage = 5;
test_ripevent(0);
test_stage = 6;
@@ -2247,7 +2246,7 @@ START_TEST(exception)
@@ -2317,7 +2316,7 @@ START_TEST(exception)
test_exceptions();
test_rtlraiseexception();
test_debug_registers();
@ -78,8 +78,8 @@ index 6fffef0..d92ba2a 100644
+ test_outputdebugstring(1);
test_ripevent(1);
test_debug_service(1);
test_closehandle(0);
@@ -2269,7 +2268,7 @@ START_TEST(exception)
test_breakpoint(1);
@@ -2340,7 +2339,7 @@ START_TEST(exception)
"RtlLookupFunctionEntry" );
test_debug_registers();
@ -87,7 +87,7 @@ index 6fffef0..d92ba2a 100644
+ test_outputdebugstring(1);
test_ripevent(1);
test_debug_service(1);
test_closehandle(0);
test_breakpoint(1);
--
2.7.1
2.7.0

View File

@ -1,26 +1,42 @@
From ac6a2310dd3423f6129a930778713fb418d3ed53 Mon Sep 17 00:00:00 2001
From 1fe20d7d5b0293e8280912766c21b207a1d45566 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 4 Oct 2014 02:35:44 +0200
Subject: ntdll: Trigger write watches before passing userdata pointer to
wait_reply.
---
dlls/advapi32/tests/security.c | 1 -
dlls/advapi32/tests/security.c | 3 ---
dlls/ntdll/server.c | 8 ++++++++
2 files changed, 8 insertions(+), 1 deletion(-)
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 3e1ced0..fbc1bb8 100644
index 8b86d45..42a55c1 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -1447,7 +1447,6 @@ todo_wine
todo_wine
ok(!ret && err == ERROR_INSUFFICIENT_BUFFER, "AccessCheck should have "
@@ -1488,7 +1488,6 @@ todo_wine
"failed with ERROR_INSUFFICIENT_BUFFER, instead of %d\n", err);
todo_wine
ok(PrivSetLen == sizeof(PRIVILEGE_SET), "PrivSetLen returns %d\n", PrivSetLen);
-todo_wine
ok(Access == 0x1abe11ed && AccessStatus == 0x1abe11ed,
"Access and/or AccessStatus were changed!\n");
@@ -1504,7 +1503,6 @@ todo_wine
"failed with ERROR_INSUFFICIENT_BUFFER, instead of %d\n", err);
todo_wine
ok(PrivSetLen == sizeof(PRIVILEGE_SET), "PrivSetLen returns %d\n", PrivSetLen);
-todo_wine
ok(Access == 0x1abe11ed && AccessStatus == 0x1abe11ed,
"Access and/or AccessStatus were changed!\n");
@@ -1605,7 +1603,6 @@ todo_wine
"failed with ERROR_INSUFFICIENT_BUFFER, instead of %d\n", err);
todo_wine
ok(PrivSetLen == sizeof(PRIVILEGE_SET), "PrivSetLen returns %d\n", PrivSetLen);
- todo_wine
ok(Access == 0x1abe11ed && AccessStatus == 0x1abe11ed,
"Access and/or AccessStatus were changed!\n");
diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
index 356d631..de9c186 100644
--- a/dlls/ntdll/server.c
@ -41,5 +57,5 @@ index 356d631..de9c186 100644
ret = send_request( req );
if (!ret) ret = wait_reply( req );
--
2.7.1
2.7.0

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "d0b88e7454b72afa5c8317b46ea0d924edff9411"
echo "c26284168ccf53e657bdfbedffd4ef13698688c8"
}
# Show version information
@ -186,7 +186,6 @@ patch_enable_all ()
enable_mshtml_HTMLLocation_put_hash="$1"
enable_msidb_Implementation="$1"
enable_msvcr120__SetWinRTOutOfMemoryExceptionCallback="$1"
enable_msvcr120_strof="$1"
enable_msvcrt_Math_Precision="$1"
enable_msvcrt_StdHandle_RefCount="$1"
enable_ntdll_APC_Performance="$1"
@ -703,9 +702,6 @@ patch_enable ()
msvcr120-_SetWinRTOutOfMemoryExceptionCallback)
enable_msvcr120__SetWinRTOutOfMemoryExceptionCallback="$2"
;;
msvcr120-strof)
enable_msvcr120_strof="$2"
;;
msvcrt-Math_Precision)
enable_msvcrt_Math_Precision="$2"
;;
@ -4344,21 +4340,6 @@ if test "$enable_msvcr120__SetWinRTOutOfMemoryExceptionCallback" -eq 1; then
) >> "$patchlist"
fi
# Patchset msvcr120-strof
# |
# | This patchset fixes the following Wine bugs:
# | * [#39908] Implement msvcr120.strtof and _strtof_l
# |
# | Modified files:
# | * dlls/msvcr120/msvcr120.spec, dlls/msvcr120/tests/msvcr120.c, dlls/msvcr120_app/msvcr120_app.spec, dlls/msvcrt/string.c
# |
if test "$enable_msvcr120_strof" -eq 1; then
patch_apply msvcr120-strof/0001-msvcr120-Implement-strtof-and-_strtof_l-try-3.patch
(
echo '+ { "Bernhard Übelacker", "msvcr120: Implement strtof and _strtof_l.", 3 },';
) >> "$patchlist"
fi
# Patchset msvcrt-Math_Precision
# |
# | This patchset fixes the following Wine bugs: