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
March 2010
----- 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
3 participants
919 discussions
Start a n
N
ew thread
Francois Gouget : avifil32/tests: Add or fix the trailing '\n' of ok() calls.
by Alexandre Julliard
22 Mar '10
22 Mar '10
Module: wine Branch: master Commit: 219eaf6ce4044a283c22e7252e0142a86cb0f2d8 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=219eaf6ce4044a283c22e7252…
Author: Francois Gouget <fgouget(a)free.fr> Date: Sat Mar 20 15:25:05 2010 +0100 avifil32/tests: Add or fix the trailing '\n' of ok() calls. --- dlls/avifil32/tests/api.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/avifil32/tests/api.c b/dlls/avifil32/tests/api.c index f5945c2..fe295bf 100644 --- a/dlls/avifil32/tests/api.c +++ b/dlls/avifil32/tests/api.c @@ -319,7 +319,7 @@ static void test_default_data(void) ok(asi0.rcFrame.right == 8, "got %u (expected 8)\n", asi0.rcFrame.right); /* these are based on the values in the mah and not */ ok(asi0.rcFrame.bottom == 6, "got %u (expected 6)\n", asi0.rcFrame.bottom);/* on the ones in the ash which are 0 here */ ok(asi0.dwEditCount == 0, "got %u (expected 0)\n", asi0.dwEditCount); - ok(asi0.dwFormatChangeCount == 0, "got %u (expected 0)\n)", asi0.dwFormatChangeCount); + ok(asi0.dwFormatChangeCount == 0, "got %u (expected 0)\n", asi0.dwFormatChangeCount); ok(asi1.fccType == streamtypeAUDIO, "got 0x%x (expected streamtypeVIDEO)\n", asi1.fccType); ok(asi1.fccHandler == 0x1, "got 0x%x (expected 0x1)\n", asi1.fccHandler); @@ -339,7 +339,7 @@ static void test_default_data(void) ok(asi1.rcFrame.right == 0, "got %u (expected 0)\n", asi1.rcFrame.right); ok(asi1.rcFrame.bottom == 0, "got %u (expected 0)\n", asi1.rcFrame.bottom); ok(asi1.dwEditCount == 0, "got %u (expected 0)\n", asi1.dwEditCount); - ok(asi1.dwFormatChangeCount == 0, "got %u (expected 0)\n)", asi1.dwFormatChangeCount); + ok(asi1.dwFormatChangeCount == 0, "got %u (expected 0)\n", asi1.dwFormatChangeCount); ok(wfx.wFormatTag == 1, "got %u (expected 1)\n",wfx.wFormatTag); ok(wfx.nChannels == 2, "got %u (expected 2)\n",wfx.nChannels); @@ -351,7 +351,7 @@ static void test_default_data(void) AVIStreamRelease(pStream0); AVIStreamRelease(pStream1); AVIFileRelease(pFile); - ok(DeleteFile(filename) !=0, "Deleting file %s failed", filename); + ok(DeleteFile(filename) !=0, "Deleting file %s failed\n", filename); } static void test_amh_corruption(void) @@ -408,7 +408,7 @@ static void test_ash1_corruption(void) AVIStreamRelease(pStream1); AVIFileRelease(pFile); - ok(DeleteFile(filename) !=0, "Deleting file %s failed", filename); + ok(DeleteFile(filename) !=0, "Deleting file %s failed\n", filename); } static void test_ash1_corruption2(void) @@ -442,7 +442,7 @@ static void test_ash1_corruption2(void) AVIStreamRelease(pStream1); AVIFileRelease(pFile); - ok(DeleteFile(filename) !=0, "Deleting file %s failed", filename); + ok(DeleteFile(filename) !=0, "Deleting file %s failed\n", filename); } /* ########################### */
1
0
0
0
Francois Gouget : d3dx9_36: Add a trailing '\n' to a TRACE().
by Alexandre Julliard
22 Mar '10
22 Mar '10
Module: wine Branch: master Commit: 381d73e42305a4457c6b8b04ee9bf3e3b8ce78a7 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=381d73e42305a4457c6b8b04e…
Author: Francois Gouget <fgouget(a)free.fr> Date: Sat Mar 20 15:25:25 2010 +0100 d3dx9_36: Add a trailing '\n' to a TRACE(). --- dlls/d3dx9_36/shader.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c index 23c3cdd..9e74a42 100644 --- a/dlls/d3dx9_36/shader.c +++ b/dlls/d3dx9_36/shader.c @@ -139,7 +139,7 @@ HRESULT WINAPI D3DXFindShaderComment(CONST DWORD* byte_code, DWORD fourcc, LPCVO { CONST DWORD *ptr = byte_code; - TRACE("(%p, %x, %p, %p)", byte_code, fourcc, data, size); + TRACE("(%p, %x, %p, %p)\n", byte_code, fourcc, data, size); if (!byte_code) return D3DERR_INVALIDCALL;
1
0
0
0
Francois Gouget : kernel32/tests: Remove a space after a '\n' in a skip().
by Alexandre Julliard
22 Mar '10
22 Mar '10
Module: wine Branch: master Commit: 891b1ce3de192d43fab28670f28fc88226808450 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=891b1ce3de192d43fab28670f…
Author: Francois Gouget <fgouget(a)free.fr> Date: Sat Mar 20 15:24:08 2010 +0100 kernel32/tests: Remove a space after a '\n' in a skip(). --- dlls/kernel32/tests/heap.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/kernel32/tests/heap.c b/dlls/kernel32/tests/heap.c index 43db787..f7e985d 100644 --- a/dlls/kernel32/tests/heap.c +++ b/dlls/kernel32/tests/heap.c @@ -529,7 +529,7 @@ static void test_heap_checks( DWORD flags ) ok( p[15] == 0, "wrong padding %x\n", p[15] ); } } - else skip( "realloc in place failed\n "); + else skip( "realloc in place failed\n"); ret = HeapFree( GetProcessHeap(), 0, p ); ok( ret, "HeapFree failed\n" );
1
0
0
0
Francois Gouget : rsaenh: Use NULL instead of casting 0.
by Alexandre Julliard
22 Mar '10
22 Mar '10
Module: wine Branch: master Commit: 716d6dcce08ac5b73de6ca9381d1cf0ebf40632c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=716d6dcce08ac5b73de6ca938…
Author: Francois Gouget <fgouget(a)free.fr> Date: Sat Mar 20 15:23:49 2010 +0100 rsaenh: Use NULL instead of casting 0. --- dlls/rsaenh/sha2.c | 34 +++++++++++++++++----------------- 1 files changed, 17 insertions(+), 17 deletions(-) diff --git a/dlls/rsaenh/sha2.c b/dlls/rsaenh/sha2.c index 559323c..d15e6fb 100644 --- a/dlls/rsaenh/sha2.c +++ b/dlls/rsaenh/sha2.c @@ -273,7 +273,7 @@ static const char sha2_hex_digits[] = "0123456789abcdef"; /*** SHA-256: *********************************************************/ void SHA256_Init(SHA256_CTX* context) { - if (context == (SHA256_CTX*)0) { + if (context == NULL) { return; } MEMCPY_BCOPY(context->state, sha256_initial_hash_value, SHA256_DIGEST_LENGTH); @@ -465,7 +465,7 @@ void SHA256_Update(SHA256_CTX* context, const sha2_byte *data, size_t len) { } /* Sanity check: */ - assert(context != (SHA256_CTX*)0 && data != (sha2_byte*)0); + assert(context != NULL && data != NULL); usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH; if (usedspace > 0) { @@ -509,10 +509,10 @@ void SHA256_Final(sha2_byte digest[], SHA256_CTX* context) { unsigned int usedspace; /* Sanity check: */ - assert(context != (SHA256_CTX*)0); + assert(context != NULL); /* If no digest buffer is passed, we don't bother doing this: */ - if (digest != (sha2_byte*)0) { + if (digest != NULL) { usedspace = (context->bitcount >> 3) % SHA256_BLOCK_LENGTH; #ifndef WORDS_BIGENDIAN /* Convert FROM host byte order */ @@ -572,9 +572,9 @@ char *SHA256_End(SHA256_CTX* context, char buffer[]) { int i; /* Sanity check: */ - assert(context != (SHA256_CTX*)0); + assert(context != NULL); - if (buffer != (char*)0) { + if (buffer != NULL) { SHA256_Final(digest, context); for (i = 0; i < SHA256_DIGEST_LENGTH; i++) { @@ -601,7 +601,7 @@ char* SHA256_Data(const sha2_byte* data, size_t len, char digest[SHA256_DIGEST_S /*** SHA-512: *********************************************************/ void SHA512_Init(SHA512_CTX* context) { - if (context == (SHA512_CTX*)0) { + if (context == NULL) { return; } MEMCPY_BCOPY(context->state, sha512_initial_hash_value, SHA512_DIGEST_LENGTH); @@ -787,7 +787,7 @@ void SHA512_Update(SHA512_CTX* context, const sha2_byte *data, size_t len) { } /* Sanity check: */ - assert(context != (SHA512_CTX*)0 && data != (sha2_byte*)0); + assert(context != NULL && data != NULL); usedspace = (context->bitcount[0] >> 3) % SHA512_BLOCK_LENGTH; if (usedspace > 0) { @@ -871,10 +871,10 @@ void SHA512_Final(sha2_byte digest[], SHA512_CTX* context) { sha2_word64 *d = (sha2_word64*)digest; /* Sanity check: */ - assert(context != (SHA512_CTX*)0); + assert(context != NULL); /* If no digest buffer is passed, we don't bother doing this: */ - if (digest != (sha2_byte*)0) { + if (digest != NULL) { SHA512_Last(context); /* Save the hash data for output: */ @@ -901,9 +901,9 @@ char *SHA512_End(SHA512_CTX* context, char buffer[]) { int i; /* Sanity check: */ - assert(context != (SHA512_CTX*)0); + assert(context != NULL); - if (buffer != (char*)0) { + if (buffer != NULL) { SHA512_Final(digest, context); for (i = 0; i < SHA512_DIGEST_LENGTH; i++) { @@ -930,7 +930,7 @@ char* SHA512_Data(const sha2_byte* data, size_t len, char digest[SHA512_DIGEST_S /*** SHA-384: *********************************************************/ void SHA384_Init(SHA384_CTX* context) { - if (context == (SHA384_CTX*)0) { + if (context == NULL) { return; } MEMCPY_BCOPY(context->state, sha384_initial_hash_value, SHA512_DIGEST_LENGTH); @@ -946,10 +946,10 @@ void SHA384_Final(sha2_byte digest[], SHA384_CTX* context) { sha2_word64 *d = (sha2_word64*)digest; /* Sanity check: */ - assert(context != (SHA384_CTX*)0); + assert(context != NULL); /* If no digest buffer is passed, we don't bother doing this: */ - if (digest != (sha2_byte*)0) { + if (digest != NULL) { SHA512_Last((SHA512_CTX*)context); /* Save the hash data for output: */ @@ -976,9 +976,9 @@ char *SHA384_End(SHA384_CTX* context, char buffer[]) { int i; /* Sanity check: */ - assert(context != (SHA384_CTX*)0); + assert(context != NULL); - if (buffer != (char*)0) { + if (buffer != NULL) { SHA384_Final(digest, context); for (i = 0; i < SHA384_DIGEST_LENGTH; i++) {
1
0
0
0
Francois Gouget : winemapi: Add a trailing '\n' to FIXME()s.
by Alexandre Julliard
22 Mar '10
22 Mar '10
Module: wine Branch: master Commit: c61732c33cff56fb667bda8ffc45ca7da7590d13 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=c61732c33cff56fb667bda8ff…
Author: Francois Gouget <fgouget(a)free.fr> Date: Sat Mar 20 15:23:18 2010 +0100 winemapi: Add a trailing '\n' to FIXME()s. --- dlls/winemapi/main.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dlls/winemapi/main.c b/dlls/winemapi/main.c index 5b6faef..a954ab7 100644 --- a/dlls/winemapi/main.c +++ b/dlls/winemapi/main.c @@ -43,28 +43,28 @@ ULONG WINAPI MAPIAddress(LHANDLE session, ULONG_PTR uiparam, LPSTR caption, ULONG editfields, LPSTR labels, ULONG nRecips, lpMapiRecipDesc lpRecips, FLAGS flags, ULONG reserved, LPULONG newRecips, lpMapiRecipDesc * lppNewRecips) { - FIXME("(stub)"); + FIXME("(stub)\n"); return MAPI_E_NOT_SUPPORTED; } ULONG WINAPI MAPIDeleteMail(LHANDLE session, ULONG_PTR uiparam, LPSTR msg_id, FLAGS flags, ULONG reserved) { - FIXME("(stub)"); + FIXME("(stub)\n"); return MAPI_E_NOT_SUPPORTED; } ULONG WINAPI MAPIDetails(LHANDLE session, ULONG_PTR uiparam, lpMapiRecipDesc recip, FLAGS flags, ULONG reserved) { - FIXME("(stub)"); + FIXME("(stub)\n"); return MAPI_E_NOT_SUPPORTED; } ULONG WINAPI MAPIFindNext(LHANDLE session, ULONG_PTR uiparam, LPSTR msg_type, LPSTR seed_msg_id, FLAGS flags, ULONG reserved, LPSTR msg_id) { - FIXME("(stub)"); + FIXME("(stub)\n"); return MAPI_E_NOT_SUPPORTED; } @@ -92,20 +92,20 @@ ULONG WINAPI MAPILogoff(LHANDLE session, ULONG_PTR uiparam, FLAGS flags, ULONG WINAPI MAPIReadMail(LHANDLE session, ULONG_PTR uiparam, LPSTR msg_id, FLAGS flags, ULONG reserved, lpMapiMessage msg) { - FIXME("(stub)"); + FIXME("(stub)\n"); return MAPI_E_NOT_SUPPORTED; } ULONG WINAPI MAPIResolveName(LHANDLE session, ULONG_PTR uiparam, LPSTR name, FLAGS flags, ULONG reserved, lpMapiRecipDesc *recip) { - FIXME("(stub)"); + FIXME("(stub)\n"); return MAPI_E_NOT_SUPPORTED; } ULONG WINAPI MAPISaveMail(LHANDLE session, ULONG_PTR uiparam, lpMapiMessage msg, FLAGS flags, ULONG reserved, LPSTR msg_id) { - FIXME("(stub)"); + FIXME("(stub)\n"); return MAPI_E_NOT_SUPPORTED; }
1
0
0
0
Vincent Povirk : ole32: Check the small block size limit of storage files.
by Alexandre Julliard
22 Mar '10
22 Mar '10
Module: wine Branch: master Commit: 49a817c064e73e60173914306dd81d95690f3923 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=49a817c064e73e60173914306…
Author: Vincent Povirk <vincent(a)codeweavers.com> Date: Sat Mar 20 14:28:09 2010 -0500 ole32: Check the small block size limit of storage files. This value is stored in the storage file header. We currently hard-code it to 0x1000. I don't expect to see files in the wild with other values, but according to MS this is a valid configuration. For now, just fail if we see another value. I've also upgraded the message for unexpected values in storage file headers to a fixme, since they are valid according to MS. --- dlls/ole32/storage32.c | 18 +++++++++++++++--- dlls/ole32/storage32.h | 4 ++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c index a15e3db..e1ba8a3 100644 --- a/dlls/ole32/storage32.c +++ b/dlls/ole32/storage32.c @@ -2665,6 +2665,7 @@ static HRESULT StorageImpl_Construct( This->bigBlockDepotCount = 1; This->bigBlockDepotStart[0] = 0; This->rootStartBlock = 1; + This->smallBlockLimit = LIMIT_TO_USE_SMALL_BLOCK; This->smallBlockDepotStart = BLOCK_END_OF_CHAIN; This->bigBlockSizeBits = DEF_BIG_BLOCK_SIZE_BITS; This->smallBlockSizeBits = DEF_SMALL_BLOCK_SIZE_BITS; @@ -3352,6 +3353,11 @@ static HRESULT StorageImpl_LoadFileHeader( StorageUtl_ReadDWord( headerBigBlock, + OFFSET_SMALLBLOCKLIMIT, + &This->smallBlockLimit); + + StorageUtl_ReadDWord( + headerBigBlock, OFFSET_SBDEPOTSTART, &This->smallBlockDepotStart); @@ -3384,9 +3390,11 @@ static HRESULT StorageImpl_LoadFileHeader( * blocks, just make sure they are what we're expecting. */ if ((This->bigBlockSize != MIN_BIG_BLOCK_SIZE && This->bigBlockSize != MAX_BIG_BLOCK_SIZE) || - This->smallBlockSize != DEF_SMALL_BLOCK_SIZE) + This->smallBlockSize != DEF_SMALL_BLOCK_SIZE || + This->smallBlockLimit != LIMIT_TO_USE_SMALL_BLOCK) { - WARN("Broken OLE storage file\n"); + FIXME("Broken OLE storage file? bigblock=0x%x, smallblock=0x%x, sblimit=0x%x\n", + This->bigBlockSize, This->smallBlockSize, This->smallBlockLimit); hr = STG_E_INVALIDHEADER; } else @@ -3440,7 +3448,6 @@ static void StorageImpl_SaveFileHeader( StorageUtl_WriteWord(headerBigBlock, 0x18, 0x3b); StorageUtl_WriteWord(headerBigBlock, 0x1a, 0x3); StorageUtl_WriteWord(headerBigBlock, 0x1c, (WORD)-2); - StorageUtl_WriteDWord(headerBigBlock, 0x38, (DWORD)0x1000); } /* @@ -3468,6 +3475,11 @@ static void StorageImpl_SaveFileHeader( StorageUtl_WriteDWord( headerBigBlock, + OFFSET_SMALLBLOCKLIMIT, + This->smallBlockLimit); + + StorageUtl_WriteDWord( + headerBigBlock, OFFSET_SBDEPOTSTART, This->smallBlockDepotStart); diff --git a/dlls/ole32/storage32.h b/dlls/ole32/storage32.h index dfa5d1a..98ec6d1 100644 --- a/dlls/ole32/storage32.h +++ b/dlls/ole32/storage32.h @@ -46,6 +46,7 @@ static const ULONG OFFSET_BIGBLOCKSIZEBITS = 0x0000001e; static const ULONG OFFSET_SMALLBLOCKSIZEBITS = 0x00000020; static const ULONG OFFSET_BBDEPOTCOUNT = 0x0000002C; static const ULONG OFFSET_ROOTSTARTBLOCK = 0x00000030; +static const ULONG OFFSET_SMALLBLOCKLIMIT = 0x00000038; static const ULONG OFFSET_SBDEPOTSTART = 0x0000003C; static const ULONG OFFSET_SBDEPOTCOUNT = 0x00000040; static const ULONG OFFSET_EXTBBDEPOTSTART = 0x00000044; @@ -97,6 +98,8 @@ static const ULONG DIRENTRY_NULL = 0xFFFFFFFF; #define STGTY_ROOT 0x05 #define COUNT_BBDEPOTINHEADER 109 + +/* FIXME: This value is stored in the header, but we hard-code it to 0x1000. */ #define LIMIT_TO_USE_SMALL_BLOCK 0x1000 #define STGM_ACCESS_MODE(stgm) ((stgm)&0x0000f) @@ -351,6 +354,7 @@ struct StorageImpl ULONG smallBlockSize; ULONG bigBlockDepotCount; ULONG rootStartBlock; + ULONG smallBlockLimit; ULONG smallBlockDepotStart; ULONG extBigBlockDepotStart; ULONG extBigBlockDepotCount;
1
0
0
0
Vincent Povirk : ole32: Don' t register an IMallocSpy object when the ole trace is used.
by Alexandre Julliard
22 Mar '10
22 Mar '10
Module: wine Branch: master Commit: 975c820fce6401aae6aaffb3711028ec12933c4e URL:
http://source.winehq.org/git/wine.git/?a=commit;h=975c820fce6401aae6aaffb37…
Author: Vincent Povirk <vincent(a)codeweavers.com> Date: Sat Mar 20 13:40:22 2010 -0500 ole32: Don't register an IMallocSpy object when the ole trace is used. There's no need for this. Any useful information we could get out of it is availble from the olemalloc channel, and it means that the ole channel changes behavior in a way that's visible to programs. --- dlls/ole32/compobj.c | 2 - dlls/ole32/ifs.c | 175 -------------------------------------------------- 2 files changed, 0 insertions(+), 177 deletions(-) diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c index 12f8314..5e010b1 100644 --- a/dlls/ole32/compobj.c +++ b/dlls/ole32/compobj.c @@ -4153,11 +4153,9 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad) case DLL_PROCESS_ATTACH: hProxyDll = hinstDLL; COMPOBJ_InitProcess(); - if (TRACE_ON(ole)) CoRegisterMallocSpy((LPVOID)-1); break; case DLL_PROCESS_DETACH: - if (TRACE_ON(ole)) CoRevokeMallocSpy(); OLEDD_UnInitialize(); COMPOBJ_UninitProcess(); RPC_UnregisterAllChannelHooks(); diff --git a/dlls/ole32/ifs.c b/dlls/ole32/ifs.c index dc625bc..c6a6962 100644 --- a/dlls/ole32/ifs.c +++ b/dlls/ole32/ifs.c @@ -360,173 +360,6 @@ static const IMallocVtbl VT_IMalloc32 = }; /****************************************************************************** - * IMallocSpy implementation - *****************************************************************************/ - -/* set the vtable later */ -static const IMallocSpyVtbl VT_IMallocSpy; - -typedef struct { - const IMallocSpyVtbl *lpVtbl; - LONG ref; -} _MallocSpy; - -/* this is the static object instance */ -static _MallocSpy MallocSpy = {&VT_IMallocSpy, 0}; - -/****************************************************************************** - * IMalloc32_QueryInterface [VTABLE] - */ -static HRESULT WINAPI IMallocSpy_fnQueryInterface(LPMALLOCSPY iface,REFIID refiid,LPVOID *obj) -{ - - TRACE("(%s,%p)\n",debugstr_guid(refiid),obj); - - if (IsEqualIID(&IID_IUnknown,refiid) || IsEqualIID(&IID_IMallocSpy,refiid)) { - *obj = &MallocSpy; - return S_OK; - } - return E_NOINTERFACE; -} - -/****************************************************************************** - * IMalloc32_AddRef [VTABLE] - */ -static ULONG WINAPI IMallocSpy_fnAddRef (LPMALLOCSPY iface) -{ - - _MallocSpy *This = (_MallocSpy *)iface; - ULONG ref = InterlockedIncrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, ref - 1); - - return ref; -} - -/****************************************************************************** - * IMalloc32_AddRelease [VTABLE] - * - * NOTES - * Our MallocSpy is static. If the count reaches 0 we dump the leaks - */ -static ULONG WINAPI IMallocSpy_fnRelease (LPMALLOCSPY iface) -{ - - _MallocSpy *This = (_MallocSpy *)iface; - ULONG ref = InterlockedDecrement(&This->ref); - - TRACE ("(%p)->(count=%u)\n", This, ref + 1); - - if (!ref) { - /* our allocation list MUST be empty here */ - } - return ref; -} - -static ULONG WINAPI IMallocSpy_fnPreAlloc(LPMALLOCSPY iface, ULONG cbRequest) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->(%u)\n", This, cbRequest); - return cbRequest; -} -static PVOID WINAPI IMallocSpy_fnPostAlloc(LPMALLOCSPY iface, void* pActual) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->(%p)\n", This, pActual); - return pActual; -} - -static PVOID WINAPI IMallocSpy_fnPreFree(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->(%p %u)\n", This, pRequest, fSpyed); - return pRequest; -} -static void WINAPI IMallocSpy_fnPostFree(LPMALLOCSPY iface, BOOL fSpyed) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->(%u)\n", This, fSpyed); -} - -static ULONG WINAPI IMallocSpy_fnPreRealloc(LPMALLOCSPY iface, void* pRequest, ULONG cbRequest, void** ppNewRequest, BOOL fSpyed) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->(%p %u %u)\n", This, pRequest, cbRequest, fSpyed); - *ppNewRequest = pRequest; - return cbRequest; -} - -static PVOID WINAPI IMallocSpy_fnPostRealloc(LPMALLOCSPY iface, void* pActual, BOOL fSpyed) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->(%p %u)\n", This, pActual, fSpyed); - return pActual; -} - -static PVOID WINAPI IMallocSpy_fnPreGetSize(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->(%p %u)\n", This, pRequest, fSpyed); - return pRequest; -} - -static ULONG WINAPI IMallocSpy_fnPostGetSize(LPMALLOCSPY iface, ULONG cbActual, BOOL fSpyed) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->(%u %u)\n", This, cbActual, fSpyed); - return cbActual; -} - -static PVOID WINAPI IMallocSpy_fnPreDidAlloc(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->(%p %u)\n", This, pRequest, fSpyed); - return pRequest; -} - -static int WINAPI IMallocSpy_fnPostDidAlloc(LPMALLOCSPY iface, void* pRequest, BOOL fSpyed, int fActual) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->(%p %u %u)\n", This, pRequest, fSpyed, fActual); - return fActual; -} - -static void WINAPI IMallocSpy_fnPreHeapMinimize(LPMALLOCSPY iface) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->()\n", This); -} - -static void WINAPI IMallocSpy_fnPostHeapMinimize(LPMALLOCSPY iface) -{ - _MallocSpy *This = (_MallocSpy *)iface; - TRACE ("(%p)->()\n", This); -} - -static void MallocSpyDumpLeaks(void) { - TRACE("leaks: %u\n", Malloc32.SpyedAllocationsLeft); -} - -static const IMallocSpyVtbl VT_IMallocSpy = -{ - IMallocSpy_fnQueryInterface, - IMallocSpy_fnAddRef, - IMallocSpy_fnRelease, - IMallocSpy_fnPreAlloc, - IMallocSpy_fnPostAlloc, - IMallocSpy_fnPreFree, - IMallocSpy_fnPostFree, - IMallocSpy_fnPreRealloc, - IMallocSpy_fnPostRealloc, - IMallocSpy_fnPreGetSize, - IMallocSpy_fnPostGetSize, - IMallocSpy_fnPreDidAlloc, - IMallocSpy_fnPostDidAlloc, - IMallocSpy_fnPreHeapMinimize, - IMallocSpy_fnPostHeapMinimize -}; - -/****************************************************************************** * CoGetMalloc [OLE32.@] * * Retrieves the current IMalloc interface for the process. @@ -620,9 +453,6 @@ HRESULT WINAPI CoRegisterMallocSpy(LPMALLOCSPY pMallocSpy) TRACE("\n"); - /* HACK TO ACTIVATE OUT SPY */ - if (pMallocSpy == (LPVOID)-1) pMallocSpy =(IMallocSpy*)&MallocSpy; - if(Malloc32.pSpy) return CO_E_OBJISREG; EnterCriticalSection(&IMalloc32_SpyCS); @@ -661,11 +491,6 @@ HRESULT WINAPI CoRevokeMallocSpy(void) EnterCriticalSection(&IMalloc32_SpyCS); - /* if it's our spy it's time to dump the leaks */ - if (Malloc32.pSpy == (IMallocSpy*)&MallocSpy) { - MallocSpyDumpLeaks(); - } - if (Malloc32.SpyedAllocationsLeft) { TRACE("SpyReleasePending with %u allocations left\n", Malloc32.SpyedAllocationsLeft); Malloc32.SpyReleasePending = TRUE;
1
0
0
0
Vincent Povirk : ole32: Track the lowest possibly-free small block in storage files.
by Alexandre Julliard
22 Mar '10
22 Mar '10
Module: wine Branch: master Commit: e05b8416b846790a2b3ec82ba69282e9724d581d URL:
http://source.winehq.org/git/wine.git/?a=commit;h=e05b8416b846790a2b3ec82ba…
Author: Vincent Povirk <vincent(a)codeweavers.com> Date: Sat Mar 20 13:13:47 2010 -0500 ole32: Track the lowest possibly-free small block in storage files. This makes creating small block chains O(n) instead of O(n**2) because we don't have to keep rechecking the first blocks in the file. --- dlls/ole32/storage32.c | 7 ++++++- dlls/ole32/storage32.h | 3 +++ 2 files changed, 9 insertions(+), 1 deletions(-) diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c index f1706da..a15e3db 100644 --- a/dlls/ole32/storage32.c +++ b/dlls/ole32/storage32.c @@ -2711,6 +2711,8 @@ static HRESULT StorageImpl_Construct( */ This->prevFreeBlock = 0; + This->firstFreeSmallBlock = 0; + /* * Create the block chain abstractions. */ @@ -5710,7 +5712,7 @@ static ULONG SmallBlockChainStream_GetNextFreeBlock( ULARGE_INTEGER offsetOfBlockInDepot; DWORD buffer; ULONG bytesRead; - ULONG blockIndex = 0; + ULONG blockIndex = This->parentStorage->firstFreeSmallBlock; ULONG nextBlockIndex = BLOCK_END_OF_CHAIN; HRESULT res = S_OK; ULONG smallBlocksPerBigBlock; @@ -5819,6 +5821,8 @@ static ULONG SmallBlockChainStream_GetNextFreeBlock( } } + This->parentStorage->firstFreeSmallBlock = blockIndex+1; + smallBlocksPerBigBlock = This->parentStorage->bigBlockSize / This->parentStorage->smallBlockSize; @@ -6117,6 +6121,7 @@ static BOOL SmallBlockChainStream_Shrink( &blockIndex))) return FALSE; SmallBlockChainStream_FreeBlock(This, extraBlock); + This->parentStorage->firstFreeSmallBlock = min(This->parentStorage->firstFreeSmallBlock, extraBlock); extraBlock = blockIndex; } diff --git a/dlls/ole32/storage32.h b/dlls/ole32/storage32.h index fad5d77..dfa5d1a 100644 --- a/dlls/ole32/storage32.h +++ b/dlls/ole32/storage32.h @@ -360,6 +360,9 @@ struct StorageImpl ULONG indexBlockDepotCached; ULONG prevFreeBlock; + /* All small blocks before this one are known to be in use. */ + ULONG firstFreeSmallBlock; + /* * Abstraction of the big block chains for the chains of the header. */
1
0
0
0
Paul Vriens : msi/tests: Remove temporary files.
by Alexandre Julliard
22 Mar '10
22 Mar '10
Module: wine Branch: master Commit: ba51763f4abc9b35a692b1f751fcfae54fd97b25 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=ba51763f4abc9b35a692b1f75…
Author: Paul Vriens <Paul.Vriens.Wine(a)gmail.com> Date: Sat Mar 20 13:40:29 2010 +0100 msi/tests: Remove temporary files. --- dlls/msi/tests/install.c | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-) diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c index 23b4564..3d99fb9 100644 --- a/dlls/msi/tests/install.c +++ b/dlls/msi/tests/install.c @@ -8015,6 +8015,7 @@ static void test_file_in_use(void) r = MsiInstallProductA(msifile, "REMOVE=ALL"); ok(r == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %u\n", r); + DeleteFileA("msitest\\maximus"); delete_test_files(); } @@ -8432,6 +8433,7 @@ static void test_register_font(void) RegDeleteValueA(key, "msi test font"); RegCloseKey(key); + DeleteFileA("msitest\\font.ttf"); delete_test_files(); } @@ -8496,6 +8498,11 @@ static void test_install_remove_odbc(void) ok(delete_pf("msitest\\ODBCsetup.dll", TRUE), "file not created\n"); ok(delete_pf("msitest", FALSE), "directory not created\n"); + DeleteFileA("msitest\\ODBCdriver.dll"); + DeleteFileA("msitest\\ODBCdriver2.dll"); + DeleteFileA("msitest\\ODBCtranslator.dll"); + DeleteFileA("msitest\\ODBCtranslator2.dll"); + DeleteFileA("msitest\\ODBCsetup.dll"); delete_test_files(); } @@ -8521,6 +8528,7 @@ static void test_register_typelib(void) ok(!delete_pf("msitest\\typelib.dll", TRUE), "file not removed\n"); ok(!delete_pf("msitest", FALSE), "directory not removed\n"); + DeleteFileA("msitest\\typelib.dll"); delete_test_files(); } @@ -8547,6 +8555,7 @@ static void test_create_remove_shortcut(void) ok(!delete_pf("msitest\\target.txt", TRUE), "file not removed\n"); todo_wine ok(!delete_pf("msitest", FALSE), "directory not removed\n"); + DeleteFileA("msitest\\target.txt"); delete_test_files(); } @@ -8583,6 +8592,8 @@ static void test_publish_components(void) ok(!delete_pf("msitest\\english.txt", TRUE), "file not removed\n"); ok(!delete_pf("msitest", FALSE), "directory not removed\n"); + + DeleteFileA("msitest\\english.txt"); delete_test_files(); } @@ -8616,6 +8627,10 @@ static void test_remove_duplicate_files(void) ok(!delete_pf("msitest\\duplicate.txt", TRUE), "file not removed\n"); ok(!delete_pf("msitest\\duplicate2.txt", TRUE), "file not removed\n"); ok(delete_pf("msitest", FALSE), "directory removed\n"); + + DeleteFileA("msitest\\original.txt"); + DeleteFileA("msitest\\original2.txt"); + DeleteFileA("msitest\\original3.txt"); delete_test_files(); } @@ -8687,6 +8702,8 @@ static void test_remove_registry_values(void) ok(!delete_pf("msitest\\registry.txt", TRUE), "file not removed\n"); ok(!delete_pf("msitest", FALSE), "directory not removed\n"); + + DeleteFileA("msitest\\registry.txt"); delete_test_files(); } @@ -8712,6 +8729,8 @@ static void test_find_related_products(void) ok(!delete_pf("msitest\\product.txt", TRUE), "file not removed\n"); ok(!delete_pf("msitest", FALSE), "directory not removed\n"); + + DeleteFileA("msitest\\product.txt"); delete_test_files(); } @@ -8763,6 +8782,8 @@ static void test_remove_ini_values(void) todo_wine ok(!delete_pf("msitest\\test.ini", TRUE), "file removed\n"); ok(!delete_pf("msitest\\inifile.txt", TRUE), "file not removed\n"); ok(delete_pf("msitest", FALSE), "directory removed\n"); + + DeleteFileA("msitest\\inifile.txt"); delete_test_files(); } @@ -8882,6 +8903,8 @@ static void test_remove_env_strings(void) ok(!delete_pf("msitest\\envvar.txt", TRUE), "file not removed\n"); ok(!delete_pf("msitest", FALSE), "directory not removed\n"); + + DeleteFileA("msitest\\envvar.txt"); delete_test_files(); }
1
0
0
0
Juan Lang : crypt32: Fix overestimating size required for base64-encoded strings.
by Alexandre Julliard
22 Mar '10
22 Mar '10
Module: wine Branch: master Commit: 67bf4dc62e7a9e459cfe16f0cc34cbe3a93e919f URL:
http://source.winehq.org/git/wine.git/?a=commit;h=67bf4dc62e7a9e459cfe16f0c…
Author: Juan Lang <juan.lang(a)gmail.com> Date: Fri Mar 19 15:51:24 2010 -0700 crypt32: Fix overestimating size required for base64-encoded strings. --- dlls/crypt32/base64.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) diff --git a/dlls/crypt32/base64.c b/dlls/crypt32/base64.c index 4a6504a..2a91372 100644 --- a/dlls/crypt32/base64.c +++ b/dlls/crypt32/base64.c @@ -204,8 +204,6 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary, charsNeeded = 0; encodeBase64A(pbBinary, cbBinary, sep, NULL, &charsNeeded); - if (sep) - charsNeeded += strlen(sep); if (header) charsNeeded += strlen(header) + strlen(sep); if (trailer) @@ -409,8 +407,6 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary, charsNeeded = 0; encodeBase64W(pbBinary, cbBinary, sep, NULL, &charsNeeded); - if (sep) - charsNeeded += strlenW(sep); if (header) charsNeeded += strlenW(header) + strlenW(sep); if (trailer)
1
0
0
0
← Newer
1
...
36
37
38
39
40
41
42
...
92
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
82
83
84
85
86
87
88
89
90
91
92
Results per page:
10
25
50
100
200