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
April 2019
----- 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
1 participants
803 discussions
Start a n
N
ew thread
Alexandre Julliard : cryptnet/tests: Avoid using snprintf().
by Alexandre Julliard
23 Apr '19
23 Apr '19
Module: wine Branch: master Commit: 740c1c37cb359020fee30a68500393dc419a2a64 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=740c1c37cb359020fee30a68…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Tue Apr 23 11:12:00 2019 +0200 cryptnet/tests: Avoid using snprintf(). Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/cryptnet/tests/cryptnet.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/cryptnet/tests/cryptnet.c b/dlls/cryptnet/tests/cryptnet.c index 8600fda..0b01760 100644 --- a/dlls/cryptnet/tests/cryptnet.c +++ b/dlls/cryptnet/tests/cryptnet.c @@ -316,7 +316,7 @@ static void make_tmp_file(LPSTR path) static void test_retrieveObjectByUrl(void) { BOOL ret; - char tmpfile[MAX_PATH * 2], url[MAX_PATH + 8]; + char tmpfile[MAX_PATH], url[MAX_PATH + 8]; CRYPT_BLOB_ARRAY *pBlobArray; PCCERT_CONTEXT cert; PCCRL_CONTEXT crl; @@ -332,7 +332,7 @@ static void test_retrieveObjectByUrl(void) GetLastError(), GetLastError()); make_tmp_file(tmpfile); - snprintf(url, sizeof(url), "file://%s", tmpfile); + sprintf(url, "file://%s", tmpfile); pBlobArray = (CRYPT_BLOB_ARRAY *)0xdeadbeef; ret = CryptRetrieveObjectByUrlA(url, NULL, 0, 0, (void **)&pBlobArray,
1
0
0
0
Alexandre Julliard : include/msvcrt: Add noreturn attributes.
by Alexandre Julliard
23 Apr '19
23 Apr '19
Module: wine Branch: master Commit: 52bc3abb1bbc28825019dbbcb94a3171f7491441 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=52bc3abb1bbc28825019dbbc…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Mon Apr 22 13:55:43 2019 +0200 include/msvcrt: Add noreturn attributes. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/msvcrt/crtdefs.h | 10 ++++++++++ include/msvcrt/eh.h | 4 ++-- include/msvcrt/process.h | 10 +++++----- include/msvcrt/stdlib.h | 8 ++++---- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/include/msvcrt/crtdefs.h b/include/msvcrt/crtdefs.h index 0c0b087..653d459 100644 --- a/include/msvcrt/crtdefs.h +++ b/include/msvcrt/crtdefs.h @@ -117,6 +117,16 @@ # endif #endif +#ifndef DECLSPEC_NORETURN +# if defined(_MSC_VER) && (_MSC_VER >= 1200) && !defined(MIDL_PASS) +# define DECLSPEC_NORETURN __declspec(noreturn) +# elif defined(__GNUC__) +# define DECLSPEC_NORETURN __attribute__((noreturn)) +# else +# define DECLSPEC_NORETURN +# endif +#endif + #ifndef DECLSPEC_ALIGN # if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS) # define DECLSPEC_ALIGN(x) __declspec(align(x)) diff --git a/include/msvcrt/eh.h b/include/msvcrt/eh.h index 932972f..90f8896 100644 --- a/include/msvcrt/eh.h +++ b/include/msvcrt/eh.h @@ -40,8 +40,8 @@ terminate_function __cdecl set_terminate(terminate_function func); unexpected_function __cdecl set_unexpected(unexpected_function func); _se_translator_function __cdecl set_se_translator(_se_translator_function func); -void __cdecl terminate(void); -void __cdecl unexpected(void); +void __cdecl terminate(void) DECLSPEC_NORETURN; +void __cdecl unexpected(void) DECLSPEC_NORETURN; #include <poppack.h> diff --git a/include/msvcrt/process.h b/include/msvcrt/process.h index 3cae112..4d286f6 100644 --- a/include/msvcrt/process.h +++ b/include/msvcrt/process.h @@ -30,8 +30,8 @@ typedef unsigned int (__stdcall *_beginthreadex_start_routine_t)(void *); uintptr_t __cdecl _beginthread(_beginthread_start_routine_t,unsigned int,void*); uintptr_t __cdecl _beginthreadex(void*,unsigned int,_beginthreadex_start_routine_t,void*,unsigned int,unsigned int*); intptr_t __cdecl _cwait(int*,intptr_t,int); -void __cdecl _endthread(void); -void __cdecl _endthreadex(unsigned int); +void __cdecl _endthread(void) DECLSPEC_NORETURN; +void __cdecl _endthreadex(unsigned int) DECLSPEC_NORETURN; intptr_t WINAPIV _execl(const char*,const char*,...); intptr_t WINAPIV _execle(const char*,const char*,...); intptr_t WINAPIV _execlp(const char*,const char*,...); @@ -52,9 +52,9 @@ intptr_t __cdecl _spawnvpe(int,const char*,const char* const *,const char* cons void __cdecl _c_exit(void); void __cdecl _cexit(void); -void __cdecl _exit(int); -void __cdecl abort(void); -void __cdecl exit(int); +void __cdecl _exit(int) DECLSPEC_NORETURN; +void __cdecl abort(void) DECLSPEC_NORETURN; +void __cdecl exit(int) DECLSPEC_NORETURN; int __cdecl system(const char*); #ifndef _WPROCESS_DEFINED diff --git a/include/msvcrt/stdlib.h b/include/msvcrt/stdlib.h index bc7c86e..3454b17 100644 --- a/include/msvcrt/stdlib.h +++ b/include/msvcrt/stdlib.h @@ -184,9 +184,9 @@ errno_t __cdecl _ui64toa_s(unsigned __int64,char*,size_t,int); char* __cdecl _ultoa(__msvcrt_ulong,char*,int); errno_t __cdecl _ultoa_s(__msvcrt_ulong,char*,size_t,int); -void __cdecl _Exit(int); -void __cdecl _exit(int); -void __cdecl abort(void); +void __cdecl _Exit(int) DECLSPEC_NORETURN; +void __cdecl _exit(int) DECLSPEC_NORETURN; +void __cdecl abort(void) DECLSPEC_NORETURN; int __cdecl abs(int); int __cdecl atexit(void (__cdecl *)(void)); double __cdecl atof(const char*); @@ -200,7 +200,7 @@ div_t __cdecl div(int,int); ldiv_t __cdecl ldiv(__msvcrt_long,__msvcrt_long); #endif lldiv_t __cdecl lldiv(__int64,__int64); -void __cdecl exit(int); +void __cdecl exit(int) DECLSPEC_NORETURN; void __cdecl free(void*); char* __cdecl getenv(const char*); __msvcrt_long __cdecl labs(__msvcrt_long);
1
0
0
0
Alexandre Julliard : include/msvcrt: Use _fpclass() instead of _dclass().
by Alexandre Julliard
23 Apr '19
23 Apr '19
Module: wine Branch: master Commit: ca6478b2a319b0f518f14df6f815138cbe5711a8 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=ca6478b2a319b0f518f14df6…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Mon Apr 22 13:30:02 2019 +0200 include/msvcrt: Use _fpclass() instead of _dclass(). dclass() is only available in MSVCR120. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/msvcrt/math.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/msvcrt/math.h b/include/msvcrt/math.h index c22c053..c539ebe 100644 --- a/include/msvcrt/math.h +++ b/include/msvcrt/math.h @@ -184,10 +184,10 @@ static const union { #define FP_ZERO 0 short __cdecl _dclass(double); -#define isfinite(x) (_dclass((double)(x)) <= FP_ZERO) -#define isinf(x) (_dclass((double)(x)) == FP_INFINITE) -#define isnan(x) (_dclass((double)(x)) == FP_NAN) -#define isnormal(x) (_dclass((double)(x)) == FP_NORMAL) +#define isfinite(x) (_finite(x)) +#define isinf(x) (!(_finite(x) || _isnan(x))) +#define isnan(x) (_isnan(x)) +#define isnormal(x) (!!(_fpclass((double)(x)) & (_FPCLASS_NN|_FPCLASS_PN))) #ifdef __cplusplus }
1
0
0
0
Alexandre Julliard : include/msvcrt: Make offsetof constant for compatibility with Mingw.
by Alexandre Julliard
23 Apr '19
23 Apr '19
Module: wine Branch: master Commit: e76912880aca42f21db6445bf48ed24c4221af41 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=e76912880aca42f21db6445b…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Mon Apr 22 13:13:36 2019 +0200 include/msvcrt: Make offsetof constant for compatibility with Mingw. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/msvcrt/stddef.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/msvcrt/stddef.h b/include/msvcrt/stddef.h index 0ceb65d..cc38d56 100644 --- a/include/msvcrt/stddef.h +++ b/include/msvcrt/stddef.h @@ -28,7 +28,9 @@ #endif #endif -#ifdef _WIN64 +#ifdef __GNUC__ +#define offsetof(s,m) __builtin_offsetof(s,m) +#elif defined(_WIN64) #define offsetof(s,m) (size_t)((ptrdiff_t)&(((s*)NULL)->m)) #else #define offsetof(s,m) (size_t)&(((s*)NULL)->m)
1
0
0
0
Alexandre Julliard : include/msvcrt: Remove some prototypes that conflict with gcc builtins.
by Alexandre Julliard
23 Apr '19
23 Apr '19
Module: wine Branch: master Commit: f402bcd0c310b15e547cf426f88a017e6600fecb URL:
https://source.winehq.org/git/wine.git/?a=commit;h=f402bcd0c310b15e547cf426…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Mon Apr 22 12:46:58 2019 +0200 include/msvcrt: Remove some prototypes that conflict with gcc builtins. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/msvcrt/math.h | 1 - include/msvcrt/process.h | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/include/msvcrt/math.h b/include/msvcrt/math.h index f8b2add..c22c053 100644 --- a/include/msvcrt/math.h +++ b/include/msvcrt/math.h @@ -221,7 +221,6 @@ static inline double jn( int n, double x ) { return _jn( n, x ); } static inline double y0( double x ) { return _y0( x ); } static inline double y1( double x ) { return _y1( x ); } static inline double yn( int n, double x ) { return _yn( n, x ); } -static inline double cabs( struct _complex z ) { return _cabs( z ); } static inline float hypotf( float x, float y ) { return _hypotf( x, y ); } diff --git a/include/msvcrt/process.h b/include/msvcrt/process.h index 94017c6..3cae112 100644 --- a/include/msvcrt/process.h +++ b/include/msvcrt/process.h @@ -94,14 +94,14 @@ int __cdecl _wsystem(const wchar_t*); static inline intptr_t cwait(int *status, intptr_t pid, int action) { return _cwait(status, pid, action); } static inline int getpid(void) { return _getpid(); } -static inline intptr_t execv(const char* name, const char* const* argv) { return _execv(name, argv); } -static inline intptr_t execve(const char* name, const char* const* argv, const char* const* envv) { return _execve(name, argv, envv); } -static inline intptr_t execvp(const char* name, const char* const* argv) { return _execvp(name, argv); } -static inline intptr_t execvpe(const char* name, const char* const* argv, const char* const* envv) { return _execvpe(name, argv, envv); } static inline intptr_t spawnv(int flags, const char* name, const char* const* argv) { return _spawnv(flags, name, argv); } static inline intptr_t spawnve(int flags, const char* name, const char* const* argv, const char* const* envv) { return _spawnve(flags, name, argv, envv); } static inline intptr_t spawnvp(int flags, const char* name, const char* const* argv) { return _spawnvp(flags, name, argv); } static inline intptr_t spawnvpe(int flags, const char* name, const char* const* argv, const char* const* envv) { return _spawnvpe(flags, name, argv, envv); } +#define execv _execv +#define execve _execve +#define execvp _execvp +#define execvpe _execvpe #if defined(__GNUC__) && (__GNUC__ < 4) extern intptr_t WINAPIV execl(const char*,const char*,...) __attribute__((alias("_execl")));
1
0
0
0
Alexandre Julliard : include/msvcrt: Define math constants by default, for compatibility with Mingw.
by Alexandre Julliard
23 Apr '19
23 Apr '19
Module: wine Branch: master Commit: b9ae3bf095ce145ac9038a27b698caa4a6e999a9 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=b9ae3bf095ce145ac9038a27…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Mon Apr 22 12:46:09 2019 +0200 include/msvcrt: Define math constants by default, for compatibility with Mingw. Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/msvcrt/math.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/msvcrt/math.h b/include/msvcrt/math.h index c2e61b7..f8b2add 100644 --- a/include/msvcrt/math.h +++ b/include/msvcrt/math.h @@ -195,7 +195,7 @@ short __cdecl _dclass(double); #include <poppack.h> -#ifdef _USE_MATH_DEFINES +#if !defined(__STRICT_ANSI__) || defined(_POSIX_C_SOURCE) || defined(_POSIX_SOURCE) || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_USE_MATH_DEFINES) #ifndef _MATH_DEFINES_DEFINED #define _MATH_DEFINES_DEFINED #define M_E 2.71828182845904523536
1
0
0
0
Nikolay Sivov : ntdll: Implement RtlGetUnloadEventTrace()/ RtlGetUnloadEventTraceEx().
by Alexandre Julliard
23 Apr '19
23 Apr '19
Module: wine Branch: master Commit: 5431409bd3ede441b490a730893fe563f3384cc4 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=5431409bd3ede441b490a730…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Tue Apr 23 08:47:30 2019 +0300 ntdll: Implement RtlGetUnloadEventTrace()/RtlGetUnloadEventTraceEx(). Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/ntdll/loader.c | 53 ++++++++++++++++++++++++++++++++++++++++++++ dlls/ntdll/rtl.c | 33 --------------------------- dlls/ntdll/tests/exception.c | 7 ------ 3 files changed, 53 insertions(+), 40 deletions(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index c0708c6..994ff6f 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -159,6 +159,57 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len ) while (len--) *dst++ = (unsigned char)*src++; } +#define RTL_UNLOAD_EVENT_TRACE_NUMBER 64 + +typedef struct _RTL_UNLOAD_EVENT_TRACE +{ + void *BaseAddress; + SIZE_T SizeOfImage; + ULONG Sequence; + ULONG TimeDateStamp; + ULONG CheckSum; + WCHAR ImageName[32]; +} RTL_UNLOAD_EVENT_TRACE, *PRTL_UNLOAD_EVENT_TRACE; + +static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER]; +static unsigned int unload_trace_seq; + +static void module_push_unload_trace( const LDR_MODULE *ldr ) +{ + RTL_UNLOAD_EVENT_TRACE *ptr = &unload_traces[unload_trace_seq]; + unsigned int len = min(sizeof(ptr->ImageName), ldr->BaseDllName.Length); + + ptr->BaseAddress = ldr->BaseAddress; + ptr->SizeOfImage = ldr->SizeOfImage; + ptr->Sequence = unload_trace_seq; + ptr->TimeDateStamp = ldr->TimeDateStamp; + ptr->CheckSum = ldr->CheckSum; + memcpy(ptr->ImageName, ldr->BaseDllName.Buffer, len); + ptr->ImageName[len / sizeof(*ptr->ImageName)] = 0; + + unload_trace_seq = (unload_trace_seq + 1) % ARRAY_SIZE(unload_traces); +} + +/********************************************************************* + * RtlGetUnloadEventTrace [NTDLL.@] + */ +RTL_UNLOAD_EVENT_TRACE * WINAPI RtlGetUnloadEventTrace(void) +{ + return unload_traces; +} + +/********************************************************************* + * RtlGetUnloadEventTraceEx [NTDLL.@] + */ +void WINAPI RtlGetUnloadEventTraceEx(ULONG **size, ULONG **count, void **trace) +{ + static unsigned int element_size = sizeof(*unload_traces); + static unsigned int element_count = ARRAY_SIZE(unload_traces); + + *size = &element_size; + *count = &element_count; + *trace = unload_traces; +} /************************************************************************* * call_dll_entry_point @@ -3358,6 +3409,8 @@ static void MODULE_DecRefCount( WINE_MODREF *wm ) MODULE_DecRefCount( wm->deps[i] ); wm->ldr.Flags &= ~LDR_UNLOAD_IN_PROGRESS; + + module_push_unload_trace( &wm->ldr ); } } diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c index 755cc6e..2e459b2 100644 --- a/dlls/ntdll/rtl.c +++ b/dlls/ntdll/rtl.c @@ -1657,39 +1657,6 @@ void WINAPI RtlInsertElementGenericTableAvl(PRTL_AVL_TABLE table, void *buffer, FIXME("%p %p %u %p: stub\n", table, buffer, size, element); } -typedef struct _RTL_UNLOAD_EVENT_TRACE -{ - PVOID BaseAddress; - SIZE_T SizeOfImage; - ULONG Sequence; - ULONG TimeDateStamp; - ULONG CheckSum; - WCHAR ImageName[32]; -} RTL_UNLOAD_EVENT_TRACE, *PRTL_UNLOAD_EVENT_TRACE; - -/********************************************************************* - * RtlGetUnloadEventTrace [NTDLL.@] - */ -RTL_UNLOAD_EVENT_TRACE * WINAPI RtlGetUnloadEventTrace(void) -{ - FIXME("stub!\n"); - return NULL; -} - -/********************************************************************* - * RtlGetUnloadEventTraceEx [NTDLL.@] - */ -void WINAPI RtlGetUnloadEventTraceEx(ULONG **size, ULONG **count, void **trace) -{ - static ULONG dummy_size, dummy_count; - - FIXME("(%p, %p, %p): stub!\n", size, count, trace); - - if (size) *size = &dummy_size; - if (count) *count = &dummy_count; - if (trace) *trace = NULL; -} - /********************************************************************* * RtlQueryPackageIdentity [NTDLL.@] */ diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c index d2e0317..4f75cc2 100644 --- a/dlls/ntdll/tests/exception.c +++ b/dlls/ntdll/tests/exception.c @@ -3349,18 +3349,15 @@ static void test_unload_trace(void) HMODULE hmod; unload_trace = pRtlGetUnloadEventTrace(); -todo_wine ok(unload_trace != NULL, "Failed to get unload events pointer.\n"); if (pRtlGetUnloadEventTraceEx) { ptr = NULL; pRtlGetUnloadEventTraceEx(&element_size, &element_count, (void **)&ptr); - todo_wine { ok(*element_size >= sizeof(*ptr), "Unexpected element size.\n"); ok(*element_count == RTL_UNLOAD_EVENT_TRACE_NUMBER, "Unexpected trace element count %u.\n", *element_count); ok(ptr != NULL, "Unexpected pointer %p.\n", ptr); - } size = *element_size; } else @@ -3370,8 +3367,6 @@ todo_wine ok(hmod != NULL, "Failed to load library.\n"); FreeLibrary(hmod); -if (unload_trace) -{ ptr = unload_trace; while (ptr->BaseAddress != NULL) { @@ -3382,8 +3377,6 @@ if (unload_trace) } ptr = (RTL_UNLOAD_EVENT_TRACE *)((char *)ptr + size); } -} -todo_wine ok(found, "Unloaded module wasn't found.\n"); }
1
0
0
0
Nikolay Sivov : ntdll/tests: Add some tests for unloaded modules traces.
by Alexandre Julliard
23 Apr '19
23 Apr '19
Module: wine Branch: master Commit: 91763843b76fd36c00522e9b3fabaad1b2a3f1e8 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=91763843b76fd36c00522e9b…
Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Tue Apr 23 08:47:29 2019 +0300 ntdll/tests: Add some tests for unloaded modules traces. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/ntdll/tests/exception.c | 147 ++++++++++++++++++++++++++++++------------- 1 file changed, 102 insertions(+), 45 deletions(-) diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c index 3b3f72f..d2e0317 100644 --- a/dlls/ntdll/tests/exception.c +++ b/dlls/ntdll/tests/exception.c @@ -56,6 +56,21 @@ static NTSTATUS (WINAPI *pNtClose)(HANDLE); static NTSTATUS (WINAPI *pNtSuspendProcess)(HANDLE process); static NTSTATUS (WINAPI *pNtResumeProcess)(HANDLE process); +#define RTL_UNLOAD_EVENT_TRACE_NUMBER 64 + +typedef struct _RTL_UNLOAD_EVENT_TRACE +{ + void *BaseAddress; + SIZE_T SizeOfImage; + ULONG Sequence; + ULONG TimeDateStamp; + ULONG CheckSum; + WCHAR ImageName[32]; +} RTL_UNLOAD_EVENT_TRACE, *PRTL_UNLOAD_EVENT_TRACE; + +static RTL_UNLOAD_EVENT_TRACE *(WINAPI *pRtlGetUnloadEventTrace)(void); +static void (WINAPI *pRtlGetUnloadEventTraceEx)(ULONG **element_size, ULONG **element_count, void **event_trace); + #if defined(__x86_64__) typedef struct { @@ -3325,6 +3340,53 @@ static void test_suspend_process(void) CloseHandle(event2); } +static void test_unload_trace(void) +{ + static const WCHAR imageW[] = {'m','s','x','m','l','3','.','d','l','l',0}; + RTL_UNLOAD_EVENT_TRACE *unload_trace, *ptr; + ULONG *element_size, *element_count, size; + BOOL found = FALSE; + HMODULE hmod; + + unload_trace = pRtlGetUnloadEventTrace(); +todo_wine + ok(unload_trace != NULL, "Failed to get unload events pointer.\n"); + + if (pRtlGetUnloadEventTraceEx) + { + ptr = NULL; + pRtlGetUnloadEventTraceEx(&element_size, &element_count, (void **)&ptr); + todo_wine { + ok(*element_size >= sizeof(*ptr), "Unexpected element size.\n"); + ok(*element_count == RTL_UNLOAD_EVENT_TRACE_NUMBER, "Unexpected trace element count %u.\n", *element_count); + ok(ptr != NULL, "Unexpected pointer %p.\n", ptr); + } + size = *element_size; + } + else + size = sizeof(*unload_trace); + + hmod = LoadLibraryA("msxml3.dll"); + ok(hmod != NULL, "Failed to load library.\n"); + FreeLibrary(hmod); + +if (unload_trace) +{ + ptr = unload_trace; + while (ptr->BaseAddress != NULL) + { + if (!lstrcmpW(imageW, ptr->ImageName)) + { + found = TRUE; + break; + } + ptr = (RTL_UNLOAD_EVENT_TRACE *)((char *)ptr + size); + } +} +todo_wine + ok(found, "Unloaded module wasn't found.\n"); +} + START_TEST(exception) { HMODULE hntdll = GetModuleHandleA("ntdll.dll"); @@ -3346,29 +3408,28 @@ START_TEST(exception) return; } - pNtGetContextThread = (void *)GetProcAddress( hntdll, "NtGetContextThread" ); - pNtSetContextThread = (void *)GetProcAddress( hntdll, "NtSetContextThread" ); - pNtReadVirtualMemory = (void *)GetProcAddress( hntdll, "NtReadVirtualMemory" ); - pNtClose = (void *)GetProcAddress( hntdll, "NtClose" ); - pRtlUnwind = (void *)GetProcAddress( hntdll, "RtlUnwind" ); - pRtlRaiseException = (void *)GetProcAddress( hntdll, "RtlRaiseException" ); - pRtlCaptureContext = (void *)GetProcAddress( hntdll, "RtlCaptureContext" ); - pNtTerminateProcess = (void *)GetProcAddress( hntdll, "NtTerminateProcess" ); - pRtlAddVectoredExceptionHandler = (void *)GetProcAddress( hntdll, - "RtlAddVectoredExceptionHandler" ); - pRtlRemoveVectoredExceptionHandler = (void *)GetProcAddress( hntdll, - "RtlRemoveVectoredExceptionHandler" ); - pRtlAddVectoredContinueHandler = (void *)GetProcAddress( hntdll, - "RtlAddVectoredContinueHandler" ); - pRtlRemoveVectoredContinueHandler = (void *)GetProcAddress( hntdll, - "RtlRemoveVectoredContinueHandler" ); - pNtQueryInformationProcess = (void*)GetProcAddress( hntdll, - "NtQueryInformationProcess" ); - pNtSetInformationProcess = (void*)GetProcAddress( hntdll, - "NtSetInformationProcess" ); +#define X(f) p##f = (void*)GetProcAddress(hntdll, #f) + X(NtGetContextThread); + X(NtSetContextThread); + X(NtReadVirtualMemory); + X(NtClose); + X(RtlUnwind); + X(RtlRaiseException); + X(RtlCaptureContext); + X(NtTerminateProcess); + X(RtlAddVectoredExceptionHandler); + X(RtlRemoveVectoredExceptionHandler); + X(RtlAddVectoredContinueHandler); + X(RtlRemoveVectoredContinueHandler); + X(NtQueryInformationProcess); + X(NtSetInformationProcess); + X(NtSuspendProcess); + X(NtResumeProcess); + X(RtlGetUnloadEventTrace); + X(RtlGetUnloadEventTraceEx); +#undef X + pIsWow64Process = (void *)GetProcAddress(GetModuleHandleA("kernel32.dll"), "IsWow64Process"); - pNtSuspendProcess = (void *)GetProcAddress( hntdll, "NtSuspendProcess" ); - pNtResumeProcess = (void *)GetProcAddress( hntdll, "NtResumeProcess" ); #ifdef __i386__ if (!pIsWow64Process || !pIsWow64Process( GetCurrentProcess(), &is_wow64 )) is_wow64 = FALSE; @@ -3455,31 +3516,26 @@ START_TEST(exception) test_thread_context(); test_suspend_thread(); test_suspend_process(); + test_unload_trace(); #elif defined(__x86_64__) - pRtlAddFunctionTable = (void *)GetProcAddress( hntdll, - "RtlAddFunctionTable" ); - pRtlDeleteFunctionTable = (void *)GetProcAddress( hntdll, - "RtlDeleteFunctionTable" ); - pRtlInstallFunctionTableCallback = (void *)GetProcAddress( hntdll, - "RtlInstallFunctionTableCallback" ); - pRtlLookupFunctionEntry = (void *)GetProcAddress( hntdll, - "RtlLookupFunctionEntry" ); - pRtlAddGrowableFunctionTable = (void *)GetProcAddress( hntdll, "RtlAddGrowableFunctionTable" ); - pRtlGrowFunctionTable = (void *)GetProcAddress( hntdll, "RtlGrowFunctionTable" ); - pRtlDeleteGrowableFunctionTable = (void *)GetProcAddress( hntdll, "RtlDeleteGrowableFunctionTable" ); - p__C_specific_handler = (void *)GetProcAddress( hntdll, - "__C_specific_handler" ); - pRtlCaptureContext = (void *)GetProcAddress( hntdll, - "RtlCaptureContext" ); - pRtlRestoreContext = (void *)GetProcAddress( hntdll, - "RtlRestoreContext" ); - pRtlUnwindEx = (void *)GetProcAddress( hntdll, - "RtlUnwindEx" ); - pRtlWow64GetThreadContext = (void *)GetProcAddress( hntdll, - "RtlWow64GetThreadContext" ); - pRtlWow64SetThreadContext = (void *)GetProcAddress( hntdll, - "RtlWow64SetThreadContext" ); + +#define X(f) p##f = (void*)GetProcAddress(hntdll, #f) + X(RtlAddFunctionTable); + X(RtlDeleteFunctionTable); + X(RtlInstallFunctionTableCallback); + X(RtlLookupFunctionEntry); + X(RtlAddGrowableFunctionTable); + X(RtlGrowFunctionTable); + X(RtlDeleteGrowableFunctionTable); + X(__C_specific_handler); + X(RtlCaptureContext); + X(RtlRestoreContext); + X(RtlUnwindEx); + X(RtlWow64GetThreadContext); + X(RtlWow64SetThreadContext); +#undef X + p_setjmp = (void *)GetProcAddress( hmsvcrt, "_setjmp" ); @@ -3498,6 +3554,7 @@ START_TEST(exception) test_wow64_context(); test_suspend_thread(); test_suspend_process(); + test_unload_trace(); if (pRtlAddFunctionTable && pRtlDeleteFunctionTable && pRtlInstallFunctionTableCallback && pRtlLookupFunctionEntry) test_dynamic_unwind();
1
0
0
0
Alistair Leslie-Hughes : winex11/wintab: Set all Device Orientation values.
by Alexandre Julliard
23 Apr '19
23 Apr '19
Module: wine Branch: master Commit: 13243a28b2493a8760f7d3041998b14412d3d281 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=13243a28b2493a8760f7d304…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Tue Apr 23 03:39:41 2019 +0000 winex11/wintab: Set all Device Orientation values. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/winex11.drv/wintab.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dlls/winex11.drv/wintab.c b/dlls/winex11.drv/wintab.c index 486c356..fe3d4a8 100644 --- a/dlls/winex11.drv/wintab.c +++ b/dlls/winex11.drv/wintab.c @@ -717,6 +717,11 @@ BOOL CDECL X11DRV_LoadTabletInfo(HWND hwnddefault) gSysDevice.ORIENTATION[1].axUnits = TU_CIRCLE; gSysDevice.ORIENTATION[1].axResolution = CASTFIX32(3600); + gSysDevice.ORIENTATION[2].axMin = 0; + gSysDevice.ORIENTATION[2].axMax = 3600; + gSysDevice.ORIENTATION[2].axUnits = TU_CIRCLE; + gSysDevice.ORIENTATION[2].axResolution + = CASTFIX32(3600); Axis++; } }
1
0
0
0
Damjan Jovanovic : qcap/tests: Fix a COM reference leak in the audiorecord test.
by Alexandre Julliard
22 Apr '19
22 Apr '19
Module: wine Branch: master Commit: 9d75caf4e1deea0ec8d5ad3f829e7218bc1e3c16 URL:
https://source.winehq.org/git/wine.git/?a=commit;h=9d75caf4e1deea0ec8d5ad3f…
Author: Damjan Jovanovic <damjan.jov(a)gmail.com> Date: Mon Apr 22 12:49:53 2019 -0500 qcap/tests: Fix a COM reference leak in the audiorecord test. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/qcap/tests/audiorecord.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dlls/qcap/tests/audiorecord.c b/dlls/qcap/tests/audiorecord.c index 5de0198..af27017 100644 --- a/dlls/qcap/tests/audiorecord.c +++ b/dlls/qcap/tests/audiorecord.c @@ -152,6 +152,7 @@ START_TEST(audiorecord) IMoniker *mon; WCHAR *name; HRESULT hr; + ULONG ref; CoInitialize(NULL); @@ -182,6 +183,8 @@ START_TEST(audiorecord) test_interfaces(filter); + ref = IBaseFilter_Release(filter); + ok(!ref, "Got outstanding refcount %d.\n", ref); IMoniker_Release(mon); }
1
0
0
0
← Newer
1
...
17
18
19
20
21
22
23
...
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