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
May 2017
----- 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
640 discussions
Start a n
N
ew thread
Daniel Lehman : dbghelp: Add support for char16_t type.
by Alexandre Julliard
04 May '17
04 May '17
Module: wine Branch: master Commit: b316ac1897f427b16338af157c8d787fbb950137 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=b316ac1897f427b16338af157…
Author: Daniel Lehman <dlehman25(a)gmail.com> Date: Wed May 3 23:16:40 2017 -0700 dbghelp: Add support for char16_t type. Signed-off-by: Daniel Lehman <dlehman25(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dbghelp/msc.c | 4 ++++ include/cvconst.h | 1 + include/wine/mscvpdb.h | 12 +++++++----- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c index f17d91e..5c474d8 100644 --- a/dlls/dbghelp/msc.c +++ b/dlls/dbghelp/msc.c @@ -169,6 +169,7 @@ static void codeview_init_basic_types(struct module* module) cv_basic_types[T_REAL80] = &symt_new_basic(module, btFloat, "long double", 10)->symt; cv_basic_types[T_RCHAR] = &symt_new_basic(module, btInt, "signed char", 1)->symt; cv_basic_types[T_WCHAR] = &symt_new_basic(module, btWChar, "wchar_t", 2)->symt; + cv_basic_types[T_CHAR16] = &symt_new_basic(module, btChar16,"char16_t", 2)->symt; cv_basic_types[T_INT2] = &symt_new_basic(module, btInt, "INT2", 2)->symt; cv_basic_types[T_UINT2] = &symt_new_basic(module, btUInt, "UINT2", 2)->symt; cv_basic_types[T_INT4] = &symt_new_basic(module, btInt, "INT4", 4)->symt; @@ -195,6 +196,7 @@ static void codeview_init_basic_types(struct module* module) cv_basic_types[T_32PREAL80] = &symt_new_pointer(module, cv_basic_types[T_REAL80], 4)->symt; cv_basic_types[T_32PRCHAR] = &symt_new_pointer(module, cv_basic_types[T_RCHAR], 4)->symt; cv_basic_types[T_32PWCHAR] = &symt_new_pointer(module, cv_basic_types[T_WCHAR], 4)->symt; + cv_basic_types[T_32PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], 4)->symt; cv_basic_types[T_32PINT2] = &symt_new_pointer(module, cv_basic_types[T_INT2], 4)->symt; cv_basic_types[T_32PUINT2] = &symt_new_pointer(module, cv_basic_types[T_UINT2], 4)->symt; cv_basic_types[T_32PINT4] = &symt_new_pointer(module, cv_basic_types[T_INT4], 4)->symt; @@ -221,6 +223,7 @@ static void codeview_init_basic_types(struct module* module) cv_basic_types[T_64PREAL80] = &symt_new_pointer(module, cv_basic_types[T_REAL80], 8)->symt; cv_basic_types[T_64PRCHAR] = &symt_new_pointer(module, cv_basic_types[T_RCHAR], 8)->symt; cv_basic_types[T_64PWCHAR] = &symt_new_pointer(module, cv_basic_types[T_WCHAR], 8)->symt; + cv_basic_types[T_64PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], 8)->symt; cv_basic_types[T_64PINT2] = &symt_new_pointer(module, cv_basic_types[T_INT2], 8)->symt; cv_basic_types[T_64PUINT2] = &symt_new_pointer(module, cv_basic_types[T_UINT2], 8)->symt; cv_basic_types[T_64PINT4] = &symt_new_pointer(module, cv_basic_types[T_INT4], 8)->symt; @@ -247,6 +250,7 @@ static void codeview_init_basic_types(struct module* module) cv_basic_types[T_PREAL80] = &symt_new_pointer(module, cv_basic_types[T_REAL80], sizeof(void*))->symt; cv_basic_types[T_PRCHAR] = &symt_new_pointer(module, cv_basic_types[T_RCHAR], sizeof(void*))->symt; cv_basic_types[T_PWCHAR] = &symt_new_pointer(module, cv_basic_types[T_WCHAR], sizeof(void*))->symt; + cv_basic_types[T_PCHAR16] = &symt_new_pointer(module, cv_basic_types[T_CHAR16], sizeof(void*))->symt; cv_basic_types[T_PINT2] = &symt_new_pointer(module, cv_basic_types[T_INT2], sizeof(void*))->symt; cv_basic_types[T_PUINT2] = &symt_new_pointer(module, cv_basic_types[T_UINT2], sizeof(void*))->symt; cv_basic_types[T_PINT4] = &symt_new_pointer(module, cv_basic_types[T_INT4], sizeof(void*))->symt; diff --git a/include/cvconst.h b/include/cvconst.h index 83b529d..5580258 100644 --- a/include/cvconst.h +++ b/include/cvconst.h @@ -78,6 +78,7 @@ enum BasicType btBit = 29, btBSTR = 30, btHresult = 31, + btChar16 = 32 }; /* kind of UDT */ diff --git a/include/wine/mscvpdb.h b/include/wine/mscvpdb.h index 7e06a49..d053b69 100644 --- a/include/wine/mscvpdb.h +++ b/include/wine/mscvpdb.h @@ -871,7 +871,7 @@ union codeview_fieldtype #define T_UINT4 0x0075 /* unsigned int */ #define T_INT8 0x0076 /* 64-bit signed int */ #define T_UINT8 0x0077 /* 64-bit unsigned int */ - +#define T_CHAR16 0x007a /* 16-bit unicode char */ /* near pointers to basic types */ #define T_PVOID 0x0103 /* near pointer to void */ @@ -904,7 +904,7 @@ union codeview_fieldtype #define T_PUINT4 0x0175 /* Near pointer to 32-bit unsigned int */ #define T_PINT8 0x0176 /* Near pointer to 64-bit signed int */ #define T_PUINT8 0x0177 /* Near pointer to 64-bit unsigned int */ - +#define T_PCHAR16 0x017a /* Near pointer to 16-bit unicode char */ /* far pointers to basic types */ #define T_PFVOID 0x0203 /* Far pointer to void */ @@ -937,7 +937,7 @@ union codeview_fieldtype #define T_PFUINT4 0x0275 /* Far pointer to 32-bit unsigned int */ #define T_PFINT8 0x0276 /* Far pointer to 64-bit signed int */ #define T_PFUINT8 0x0277 /* Far pointer to 64-bit unsigned int */ - +#define T_PFCHAR16 0x027a /* Far pointer to 16-bit unicode char */ /* huge pointers to basic types */ #define T_PHVOID 0x0303 /* Huge pointer to void */ @@ -970,7 +970,7 @@ union codeview_fieldtype #define T_PHUINT4 0x0375 /* Huge pointer to 32-bit unsigned int */ #define T_PHINT8 0x0376 /* Huge pointer to 64-bit signed int */ #define T_PHUINT8 0x0377 /* Huge pointer to 64-bit unsigned int */ - +#define T_PHCHAR16 0x037a /* Huge pointer to 16-bit unicode char */ /* 32-bit near pointers to basic types */ #define T_32PVOID 0x0403 /* 32-bit near pointer to void */ @@ -1004,7 +1004,7 @@ union codeview_fieldtype #define T_32PUINT4 0x0475 /* 16:32 near pointer to 32-bit unsigned int */ #define T_32PINT8 0x0476 /* 16:32 near pointer to 64-bit signed int */ #define T_32PUINT8 0x0477 /* 16:32 near pointer to 64-bit unsigned int */ - +#define T_32PCHAR16 0x047a /* 16:32 near pointer to 16-bit unicode char */ /* 32-bit far pointers to basic types */ #define T_32PFVOID 0x0503 /* 32-bit far pointer to void */ @@ -1038,6 +1038,7 @@ union codeview_fieldtype #define T_32PFUINT4 0x0575 /* 16:32 far pointer to 32-bit unsigned int */ #define T_32PFINT8 0x0576 /* 16:32 far pointer to 64-bit signed int */ #define T_32PFUINT8 0x0577 /* 16:32 far pointer to 64-bit unsigned int */ +#define T_32PFCHAR16 0x057a /* 16:32 far pointer to 16-bit unicode char */ /* 64-bit near pointers to basic types */ #define T_64PVOID 0x0603 /* 64-bit near pointer to void */ @@ -1071,6 +1072,7 @@ union codeview_fieldtype #define T_64PUINT4 0x0675 /* 64 near pointer to 32-bit unsigned int */ #define T_64PINT8 0x0676 /* 64 near pointer to 64-bit signed int */ #define T_64PUINT8 0x0677 /* 64 near pointer to 64-bit unsigned int */ +#define T_64PCHAR16 0x067a /* 64 near pointer to 16-bit unicode char */ /* counts, bit masks, and shift values needed to access various parts of the built-in type numbers */ #define T_MAXPREDEFINEDTYPE 0x0580 /* maximum type index for all built-in types */
1
0
0
0
Daniel Lehman : include: Remove references to SPARC.
by Alexandre Julliard
04 May '17
04 May '17
Module: wine Branch: master Commit: 1fdebb77ecb8dcd1d1565457b6f86de36dea39cd URL:
http://source.winehq.org/git/wine.git/?a=commit;h=1fdebb77ecb8dcd1d1565457b…
Author: Daniel Lehman <dlehman25(a)gmail.com> Date: Wed May 3 23:16:17 2017 -0700 include: Remove references to SPARC. SPARC support removed in 2013. Signed-off-by: Daniel Lehman <dlehman25(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- include/basetsd.h | 6 +----- include/msvcrt/crtdefs.h | 2 +- include/windef.h | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/include/basetsd.h b/include/basetsd.h index f855352..96ea3f0 100644 --- a/include/basetsd.h +++ b/include/basetsd.h @@ -36,7 +36,7 @@ extern "C" { * 64-bit. */ -#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__sparc64__) || defined(__aarch64__)) && !defined(_WIN64) +#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__aarch64__)) && !defined(_WIN64) #define _WIN64 #endif @@ -277,10 +277,6 @@ typedef ULONG_PTR KAFFINITY, *PKAFFINITY; # undef WORDS_BIGENDIAN # undef BITFIELDS_BIGENDIAN # define ALLOW_UNALIGNED_ACCESS -#elif defined(__sparc__) -# define WORDS_BIGENDIAN -# define BITFIELDS_BIGENDIAN -# undef ALLOW_UNALIGNED_ACCESS #elif defined(__powerpc__) # define WORDS_BIGENDIAN # define BITFIELDS_BIGENDIAN diff --git a/include/msvcrt/crtdefs.h b/include/msvcrt/crtdefs.h index dde5ea1..8aed64c 100644 --- a/include/msvcrt/crtdefs.h +++ b/include/msvcrt/crtdefs.h @@ -29,7 +29,7 @@ # error You cannot use both wine/port.h and msvcrt headers #endif -#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__sparc64__) || defined(__aarch64__)) && !defined(_WIN64) +#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__aarch64__)) && !defined(_WIN64) #define _WIN64 #endif diff --git a/include/windef.h b/include/windef.h index 1e54fcb..e77b1ca 100644 --- a/include/windef.h +++ b/include/windef.h @@ -37,7 +37,7 @@ extern "C" { /* Calling conventions definitions */ -#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__sparc64__) || defined(__aarch64__)) && !defined(_WIN64) +#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__aarch64__)) && !defined(_WIN64) #define _WIN64 #endif
1
0
0
0
Hugh McMaster : regedit: Use a function pointer to read each registry line instead of calling get_lineA /W() directly.
by Alexandre Julliard
03 May '17
03 May '17
Module: wine Branch: master Commit: 8753a1b271795d2f977b41a814de7e4ace780d2e URL:
http://source.winehq.org/git/wine.git/?a=commit;h=8753a1b271795d2f977b41a81…
Author: Hugh McMaster <hugh.mcmaster(a)outlook.com> Date: Wed May 3 11:28:36 2017 +0000 regedit: Use a function pointer to read each registry line instead of calling get_lineA/W() directly. Signed-off-by: Hugh McMaster <hugh.mcmaster(a)outlook.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- programs/regedit/regproc.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c index 282800e..a65f879 100644 --- a/programs/regedit/regproc.c +++ b/programs/regedit/regproc.c @@ -745,12 +745,12 @@ cleanup: return NULL; } -static BOOL processRegLinesA(FILE *fp, char *two_chars) +static BOOL processRegLinesA(FILE *fp, WCHAR *(*get_line)(FILE *), char *two_chars) { WCHAR *line, *header; int reg_version; - line = get_lineA(fp); + line = get_line(fp); header = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(line) + 3) * sizeof(WCHAR)); CHECK_ENOUGH_MEMORY(header); @@ -762,11 +762,11 @@ static BOOL processRegLinesA(FILE *fp, char *two_chars) HeapFree(GetProcessHeap(), 0, header); if (reg_version == REG_VERSION_FUZZY || reg_version == REG_VERSION_INVALID) { - get_lineA(NULL); /* Reset static variables */ + get_line(NULL); /* Reset static variables */ return reg_version == REG_VERSION_FUZZY; } - while ((line = get_lineA(fp))) + while ((line = get_line(fp))) { if (reg_version == REG_VERSION_31) processRegEntry31(line); @@ -847,20 +847,20 @@ cleanup: return NULL; } -static BOOL processRegLinesW(FILE *fp) +static BOOL processRegLinesW(FILE *fp, WCHAR *(*get_line)(FILE *)) { WCHAR *line; int reg_version; - line = get_lineW(fp); + line = get_line(fp); reg_version = parse_file_header(line); if (reg_version == REG_VERSION_FUZZY || reg_version == REG_VERSION_INVALID) { - get_lineW(NULL); /* Reset static variables */ + get_line(NULL); /* Reset static variables */ return reg_version == REG_VERSION_FUZZY; } - while ((line = get_lineW(fp))) + while ((line = get_line(fp))) processRegEntry(line, TRUE); closeKey(); @@ -1346,9 +1346,9 @@ BOOL import_registry_file(FILE* reg_file) return FALSE; if (s[0] == 0xff && s[1] == 0xfe) - return processRegLinesW(reg_file); + return processRegLinesW(reg_file, get_lineW); else - return processRegLinesA(reg_file, (char *)s); + return processRegLinesA(reg_file, get_lineA, (char *)s); } /******************************************************************************
1
0
0
0
Hugh McMaster : regedit: Return a Unicode line from get_lineA().
by Alexandre Julliard
03 May '17
03 May '17
Module: wine Branch: master Commit: 76b9e6c712bfa129afec746f4e986a5fbdedbd98 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=76b9e6c712bfa129afec746f4…
Author: Hugh McMaster <hugh.mcmaster(a)outlook.com> Date: Wed May 3 11:28:26 2017 +0000 regedit: Return a Unicode line from get_lineA(). Signed-off-by: Hugh McMaster <hugh.mcmaster(a)outlook.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- programs/regedit/regproc.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c index 9740293..282800e 100644 --- a/programs/regedit/regproc.c +++ b/programs/regedit/regproc.c @@ -671,12 +671,15 @@ static enum reg_versions parse_file_header(WCHAR *s) return REG_VERSION_INVALID; } -static char *get_lineA(FILE *fp) +static WCHAR *get_lineA(FILE *fp) { + static WCHAR *lineW; static size_t size; static char *buf, *next; char *line; + HeapFree(GetProcessHeap(), 0, lineW); + if (!fp) goto cleanup; if (!size) @@ -707,7 +710,8 @@ static char *get_lineA(FILE *fp) if (!(count = fread(buf + len, 1, size - len - 1, fp))) { next = NULL; - return buf; + lineW = GetWideString(buf); + return lineW; } buf[len + count] = 0; next = buf; @@ -730,10 +734,12 @@ static char *get_lineA(FILE *fp) line = next; continue; } - return line; + lineW = GetWideString(line); + return lineW; } cleanup: + lineW = NULL; if (size) HeapFree(GetProcessHeap(), 0, buf); size = 0; return NULL; @@ -741,22 +747,19 @@ cleanup: static BOOL processRegLinesA(FILE *fp, char *two_chars) { - char *line, *header; - WCHAR *lineW; + WCHAR *line, *header; int reg_version; line = get_lineA(fp); - header = HeapAlloc(GetProcessHeap(), 0, strlen(line) + 3); + header = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(line) + 3) * sizeof(WCHAR)); CHECK_ENOUGH_MEMORY(header); - strcpy(header, two_chars); - strcpy(header + 2, line); + header[0] = two_chars[0]; + header[1] = two_chars[1]; + lstrcpyW(header + 2, line); - lineW = GetWideString(header); + reg_version = parse_file_header(header); HeapFree(GetProcessHeap(), 0, header); - - reg_version = parse_file_header(lineW); - HeapFree(GetProcessHeap(), 0, lineW); if (reg_version == REG_VERSION_FUZZY || reg_version == REG_VERSION_INVALID) { get_lineA(NULL); /* Reset static variables */ @@ -765,14 +768,10 @@ static BOOL processRegLinesA(FILE *fp, char *two_chars) while ((line = get_lineA(fp))) { - lineW = GetWideString(line); - if (reg_version == REG_VERSION_31) - processRegEntry31(lineW); + processRegEntry31(line); else - processRegEntry(lineW, FALSE); - - HeapFree(GetProcessHeap(), 0, lineW); + processRegEntry(line, FALSE); } closeKey();
1
0
0
0
Hugh McMaster : regedit: Simplify clean-up in get_lineA/W().
by Alexandre Julliard
03 May '17
03 May '17
Module: wine Branch: master Commit: 6b596ecf9e47e31823141cbeb764791c498d9b02 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=6b596ecf9e47e31823141cbeb…
Author: Hugh McMaster <hugh.mcmaster(a)outlook.com> Date: Wed May 3 11:28:14 2017 +0000 regedit: Simplify clean-up in get_lineA/W(). Signed-off-by: Hugh McMaster <hugh.mcmaster(a)outlook.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- programs/regedit/regproc.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c index 8dd18d2..9740293 100644 --- a/programs/regedit/regproc.c +++ b/programs/regedit/regproc.c @@ -677,12 +677,7 @@ static char *get_lineA(FILE *fp) static char *buf, *next; char *line; - if (!fp) - { - if (size) HeapFree(GetProcessHeap(), 0, buf); - size = 0; - return NULL; - } + if (!fp) goto cleanup; if (!size) { @@ -737,7 +732,9 @@ static char *get_lineA(FILE *fp) } return line; } - HeapFree(GetProcessHeap(), 0, buf); + +cleanup: + if (size) HeapFree(GetProcessHeap(), 0, buf); size = 0; return NULL; } @@ -788,12 +785,7 @@ static WCHAR *get_lineW(FILE *fp) static WCHAR *buf, *next; WCHAR *line; - if (!fp) - { - if (size) HeapFree(GetProcessHeap(), 0, buf); - size = 0; - return NULL; - } + if (!fp) goto cleanup; if (!size) { @@ -849,7 +841,9 @@ static WCHAR *get_lineW(FILE *fp) } return line; } - HeapFree( GetProcessHeap(), 0, buf ); + +cleanup: + if (size) HeapFree(GetProcessHeap(), 0, buf); size = 0; return NULL; }
1
0
0
0
Alexandre Julliard : configure: Check for the necessary data structure for if_nameindex().
by Alexandre Julliard
03 May '17
03 May '17
Module: wine Branch: master Commit: a6fc8f6c82f832115e2fdd7b3762fa344d437fa5 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a6fc8f6c82f832115e2fdd7b3…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Wed May 3 21:20:43 2017 +0200 configure: Check for the necessary data structure for if_nameindex(). Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- configure | 39 ++++++++++++++++++++++++++++++++++++++- configure.ac | 14 +++++++++++++- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 53882d5..04d6f54 100755 --- a/configure +++ b/configure @@ -15284,7 +15284,6 @@ for ac_func in \ getpwuid \ gettimeofday \ getuid \ - if_nameindex \ isnanf \ kqueue \ lstat \ @@ -16150,6 +16149,44 @@ _ACEOF fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for if_nameindex" >&5 +$as_echo_n "checking for if_nameindex... " >&6; } +if ${wine_cv_have_if_nameindex+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef HAVE_SYS_TYPES_H +#include <sys/types.h> +#endif +#ifdef HAVE_NET_IF_H +# include <net/if.h> +#endif +int +main () +{ +struct if_nameindex *p = if_nameindex(); return p->if_index; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + wine_cv_have_if_nameindex=yes +else + wine_cv_have_if_nameindex=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $wine_cv_have_if_nameindex" >&5 +$as_echo "$wine_cv_have_if_nameindex" >&6; } +if test "$wine_cv_have_if_nameindex" = "yes" +then + +$as_echo "#define HAVE_IF_NAMEINDEX 1" >>confdefs.h + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigaddset" >&5 $as_echo_n "checking for sigaddset... " >&6; } if ${wine_cv_have_sigaddset+:} false; then : diff --git a/configure.ac b/configure.ac index e86f143..1431fb6 100644 --- a/configure.ac +++ b/configure.ac @@ -2015,7 +2015,6 @@ AC_CHECK_FUNCS(\ getpwuid \ gettimeofday \ getuid \ - if_nameindex \ isnanf \ kqueue \ lstat \ @@ -2203,6 +2202,19 @@ AC_CHECK_MEMBERS([struct ff_effect.direction],,, #include <linux/input.h> #endif]) +AC_CACHE_CHECK([for if_nameindex],wine_cv_have_if_nameindex, + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#ifdef HAVE_SYS_TYPES_H +#include <sys/types.h> +#endif +#ifdef HAVE_NET_IF_H +# include <net/if.h> +#endif]], + [[struct if_nameindex *p = if_nameindex(); return p->if_index;]])],[wine_cv_have_if_nameindex=yes],[wine_cv_have_if_nameindex=no])) +if test "$wine_cv_have_if_nameindex" = "yes" +then + AC_DEFINE(HAVE_IF_NAMEINDEX, 1, [Define to 1 if you have the `if_nameindex' function.]) +fi + AC_CACHE_CHECK([for sigaddset],wine_cv_have_sigaddset, AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <signal.h>]], [[sigset_t set; sigaddset(&set,SIGTERM);]])],[wine_cv_have_sigaddset=yes],[wine_cv_have_sigaddset=no])) if test "$wine_cv_have_sigaddset" = "yes"
1
0
0
0
Piotr Caban : msvcp90: Don' t overwrite pointers to class members in basic_streambuf:swap.
by Alexandre Julliard
03 May '17
03 May '17
Module: wine Branch: master Commit: 5bb77b4e452b0f3dd156b709c8488dde540f3a24 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=5bb77b4e452b0f3dd156b709c…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Wed May 3 17:44:03 2017 +0200 msvcp90: Don't overwrite pointers to class members in basic_streambuf:swap. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcp90/ios.c | 54 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 12 deletions(-) diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index 84a6bf2c..07aa651 100644 --- a/dlls/msvcp90/ios.c +++ b/dlls/msvcp90/ios.c @@ -2002,18 +2002,33 @@ streamsize __thiscall basic_streambuf_char_sputn(basic_streambuf_char *this, con DEFINE_THISCALL_WRAPPER(basic_streambuf_char_swap, 8) void __thiscall basic_streambuf_char_swap(basic_streambuf_char *this, basic_streambuf_char *r) { - basic_streambuf_char tmp; + char *wfirst, *wnext, *wlast, *rfirst, *rnext, *rlast; +#if _MSVCP_VER < 70 + locale loc; +#else + locale *loc; +#endif TRACE("(%p %p)\n", this, r); if(this == r) return; - tmp = *this; - *this = *r; - this->vtable = tmp.vtable; - tmp.vtable = r->vtable; - *r = tmp; + wfirst = *this->pwbuf; + wnext = *this->pwpos; + wlast = *this->pwpos + *this->pwsize; + rfirst = *this->prbuf; + rnext = *this->prpos; + rlast = *this->prpos + *this->prsize; + loc = this->loc; + + basic_streambuf_char_setp_next(this, *r->pwbuf, *r->pwpos, *r->pwpos + *r->pwsize); + basic_streambuf_char_setg(this, *r->prbuf, *r->prpos, *r->prpos + *r->prsize); + this->loc = r->loc; + + basic_streambuf_char_setp_next(r, wfirst, wnext, wlast); + basic_streambuf_char_setg(r, rfirst, rnext, rlast); + r->loc = loc; } /* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */ @@ -2959,18 +2974,33 @@ streamsize __thiscall basic_streambuf_wchar_sputn(basic_streambuf_wchar *this, c DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_swap, 8) void __thiscall basic_streambuf_wchar_swap(basic_streambuf_wchar *this, basic_streambuf_wchar *r) { - basic_streambuf_wchar tmp; + wchar_t *wfirst, *wnext, *wlast, *rfirst, *rnext, *rlast; +#if _MSVCP_VER < 70 + locale loc; +#else + locale *loc; +#endif TRACE("(%p %p)\n", this, r); if(this == r) return; - tmp = *this; - *this = *r; - this->vtable = tmp.vtable; - tmp.vtable = r->vtable; - *r = tmp; + wfirst = *this->pwbuf; + wnext = *this->pwpos; + wlast = *this->pwpos + *this->pwsize; + rfirst = *this->prbuf; + rnext = *this->prpos; + rlast = *this->prpos + *this->prsize; + loc = this->loc; + + basic_streambuf_wchar_setp_next(this, *r->pwbuf, *r->pwpos, *r->pwpos + *r->pwsize); + basic_streambuf_wchar_setg(this, *r->prbuf, *r->prpos, *r->prpos + *r->prsize); + this->loc = r->loc; + + basic_streambuf_wchar_setp_next(r, wfirst, wnext, wlast); + basic_streambuf_wchar_setg(r, rfirst, rnext, rlast); + r->loc = loc; } /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
1
0
0
0
Bruno Jesus : gdiplus: Use software mode to draw semi-transparent lines when necessary.
by Alexandre Julliard
03 May '17
03 May '17
Module: wine Branch: master Commit: 29a55bc4d12834ee9a68ebc924ffec6959485421 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=29a55bc4d12834ee9a68ebc92…
Author: Bruno Jesus <bjesus(a)codeweavers.com> Date: Wed May 3 02:59:42 2017 -0300 gdiplus: Use software mode to draw semi-transparent lines when necessary. Signed-off-by: Bruno Jesus <bjesus(a)codeweavers.com> Signed-off-by: Vincent Povirk <vincent(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/gdiplus/graphics.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 4d8bdd7..6c0d58d 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -1001,12 +1001,21 @@ static REAL intersect_line_scanline(const GpPointF *p1, const GpPointF *p2, REAL return (p1->X - p2->X) * (p2->Y - y) / (p2->Y - p1->Y) + p2->X; } -static BOOL brush_can_fill_path(GpBrush *brush) +/* is_fill is TRUE if filling regions, FALSE for drawing primitives */ +static BOOL brush_can_fill_path(GpBrush *brush, BOOL is_fill) { switch (brush->bt) { case BrushTypeSolidColor: - return TRUE; + { + if (is_fill) + return TRUE; + else + { + /* cannot draw semi-transparent colors */ + return (((GpSolidFill*)brush)->color & 0xff000000) == 0xff000000; + } + } case BrushTypeHatchFill: { GpHatch *hatch = (GpHatch*)brush; @@ -3785,7 +3794,7 @@ GpStatus WINGDIPAPI GdipDrawPath(GpGraphics *graphics, GpPen *pen, GpPath *path) if (path->pathdata.Count == 0) return Ok; - if (!graphics->hdc) + if (!graphics->hdc || !brush_can_fill_path(pen->brush, FALSE)) retval = SOFTWARE_GdipDrawPath(graphics, pen, path); else retval = GDI32_GdipDrawPath(graphics, pen, path); @@ -4035,7 +4044,7 @@ static GpStatus GDI32_GdipFillPath(GpGraphics *graphics, GpBrush *brush, GpPath GpStatus retval; HRGN hrgn=NULL; - if(!graphics->hdc || !brush_can_fill_path(brush)) + if(!graphics->hdc || !brush_can_fill_path(brush, TRUE)) return NotImplemented; save_state = SaveDC(graphics->hdc); @@ -4328,7 +4337,7 @@ static GpStatus GDI32_GdipFillRegion(GpGraphics* graphics, GpBrush* brush, HRGN hrgn; RECT rc; - if(!graphics->hdc || !brush_can_fill_path(brush)) + if(!graphics->hdc || !brush_can_fill_path(brush, TRUE)) return NotImplemented; status = GdipGetRegionHRgn(region, graphics, &hrgn);
1
0
0
0
Henri Verbeet : d3dx9/tests: Use compare_float() in test_D3DXSHEvalConeLight().
by Alexandre Julliard
03 May '17
03 May '17
Module: wine Branch: master Commit: 6834b285d21aaa869f189073734b08ca73d759f6 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=6834b285d21aaa869f1890737…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Fri Apr 28 23:49:17 2017 +0200 d3dx9/tests: Use compare_float() in test_D3DXSHEvalConeLight(). Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3dx9_36/tests/math.c | 59 ++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/dlls/d3dx9_36/tests/math.c b/dlls/d3dx9_36/tests/math.c index 9f90d16..93d31a7 100644 --- a/dlls/d3dx9_36/tests/math.c +++ b/dlls/d3dx9_36/tests/math.c @@ -2616,9 +2616,14 @@ static void test_D3DXSHDot(void) static void test_D3DXSHEvalConeLight(void) { + float bout[49], expected, gout[49], rout[49]; + unsigned int j, l, order; D3DXVECTOR3 dir; - FLOAT bout[49], expected, gout[49], rout[49]; - const FLOAT table[] = { + HRESULT hr; + BOOL equal; + + static const float table[] = + { /* Red colour */ 1.604815f, -3.131381f, 7.202175f, -2.870432f, 6.759296f, -16.959688f, 32.303082f, -15.546381f, -0.588878f, -5.902123f, 40.084042f, -77.423569f, @@ -2661,12 +2666,14 @@ static void test_D3DXSHEvalConeLight(void) 15.691326f, -26.775339f, 45.859665f, -24.544060f, -1.367048f, 4.013170f, -1.039392f, 8.582172f, -9.440103f, -117.862114f, 517.839600f, -820.820740f, 1374.188232f, -752.419067f, -45.114819f, 153.427063f, -53.766754f, 5.478452f, }; - struct + const struct + { + float *red_received, *green_received, *blue_received; + const float *red_expected, *green_expected, *blue_expected; + float radius, roffset, goffset, boffset; + } + test[] = { - FLOAT *red_received, *green_received, *blue_received; - const FLOAT *red_expected, *green_expected, *blue_expected; - FLOAT radius, roffset, goffset, boffset; - } test[] = { { rout, gout, bout, table, &table[72], &table[144], 0.5f, 1.01f, 1.02f, 1.03f, }, { rout, gout, bout, &table[36], &table[108], &table[180], 1.6f, 1.01f, 1.02f, 1.03f, }, { rout, rout, rout, &table[144], &table[144], &table[144], 0.5f, 1.03f, 1.03f, 1.03f, }, @@ -2676,9 +2683,8 @@ static void test_D3DXSHEvalConeLight(void) /* D3DXSHEvalConeLight accepts NULL green or blue colour. */ { rout, NULL, bout, table, NULL, &table[144], 0.5f, 1.01f, 0.0f, 1.03f, }, { rout, gout, NULL, table, &table[72], NULL, 0.5f, 1.01f, 1.02f, 0.0f, }, - { rout, NULL, NULL, table, NULL, NULL, 0.5f, 1.01f, 0.0f, 0.0f, }, }; - HRESULT hr; - unsigned int j, l, order; + { rout, NULL, NULL, table, NULL, NULL, 0.5f, 1.01f, 0.0f, 0.0f, }, + }; dir.x = 1.1f; dir.y = 1.2f; dir.z = 2.76f; @@ -2704,8 +2710,9 @@ static void test_D3DXSHEvalConeLight(void) expected = j + test[l].roffset; else expected = test[l].red_expected[j]; - ok(relative_error(expected, test[l].red_received[j]) < admitted_error, - "Red: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, test[l].red_received[j]); + equal = compare_float(test[l].red_received[j], expected, 128); + ok(equal, "Red: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, expected, test[l].red_received[j]); if (test[l].green_received) { @@ -2713,8 +2720,9 @@ static void test_D3DXSHEvalConeLight(void) expected = j + test[l].goffset; else expected = test[l].green_expected[j]; - ok(relative_error(expected, test[l].green_received[j]) < admitted_error, - "Green: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, test[l].green_received[j]); + equal = compare_float(test[l].green_received[j], expected, 64); + ok(equal, "Green: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, expected, test[l].green_received[j]); } if (test[l].blue_received) @@ -2723,8 +2731,9 @@ static void test_D3DXSHEvalConeLight(void) expected = j + test[l].boffset; else expected = test[l].blue_expected[j]; - ok(relative_error(expected, test[l].blue_received[j]) < admitted_error, - "Blue: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, test[l].blue_received[j]); + equal = compare_float(test[l].blue_received[j], expected, 128); + ok(equal, "Blue: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, expected, test[l].blue_received[j]); } } } @@ -2751,17 +2760,17 @@ static void test_D3DXSHEvalConeLight(void) for (j = 0; j < 49; j++) { - expected = red[j]; - ok(relative_error(expected, rout[j]) < admitted_error, - "Red: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, rout[j]); + equal = compare_float(red[j], rout[j], 0); + ok(equal, "Red: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, red[j], rout[j]); - expected = green[j]; - ok(relative_error(expected, gout[j]) < admitted_error, - "Green: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, gout[j]); + equal = compare_float(green[j], gout[j], 0); + ok(equal, "Green: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, green[j], gout[j]); - expected = blue[j]; - ok(relative_error(expected, bout[j]) < admitted_error, - "Blue: case %u, order %u: expected[%u] = %f, received %f\n", l, order, j, expected, bout[j]); + equal = compare_float(blue[j], bout[j], 0); + ok(equal, "Blue: case %u, order %u: expected[%u] = %.8e, received %.8e.\n", + l, order, j, blue[j], bout[j]); } }
1
0
0
0
Henri Verbeet : d3dx9/tests: Use compare_float() in test_D3DXSHDot().
by Alexandre Julliard
03 May '17
03 May '17
Module: wine Branch: master Commit: 6ac2e70240a778e6259a98fd36e00dcb936b8a83 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=6ac2e70240a778e6259a98fd3…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Fri Apr 28 23:49:16 2017 +0200 d3dx9/tests: Use compare_float() in test_D3DXSHDot(). Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/d3dx9_36/tests/math.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dlls/d3dx9_36/tests/math.c b/dlls/d3dx9_36/tests/math.c index 291fcdc..9f90d16 100644 --- a/dlls/d3dx9_36/tests/math.c +++ b/dlls/d3dx9_36/tests/math.c @@ -2593,10 +2593,11 @@ static void test_D3DXSHAdd(void) static void test_D3DXSHDot(void) { + float a[49], b[49], got; unsigned int i; - FLOAT a[49], b[49], got; - const FLOAT expected[] = - { 0.5f, 0.5f, 25.0f, 262.5f, 1428.0f, 5362.0f, 15873.0f, 39812.0f, }; + BOOL equal; + + static const float expected[] = {0.5f, 0.5f, 25.0f, 262.5f, 1428.0f, 5362.5f, 15873.0f, 39812.5f}; for (i = 0; i < 49; i++) { @@ -2608,10 +2609,9 @@ static void test_D3DXSHDot(void) for (i = 0; i <= D3DXSH_MAXORDER + 1; i++) { got = D3DXSHDot(i, a, b); - ok(relative_error(got, expected[i]) < admitted_error, "order %d: expected %f, received %f\n", i, expected[i], got); + equal = compare_float(got, expected[i], 0); + ok(equal, "order %u: Got %.8e, expected %.8e.\n", i, got, expected[i]); } - - return; } static void test_D3DXSHEvalConeLight(void)
1
0
0
0
← Newer
1
...
54
55
56
57
58
59
60
...
64
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
Results per page:
10
25
50
100
200