Reece Dunn msclrhd@googlemail.com writes:
NOTE: A check for integer overflow would be `position.low + move.low < position.low`, but there are no current tests to say if integer overflow is handled (and how it is handled) here in the tests. Therefore, the simplest implementation is just to remove the previous check.
It may be the simplest, but the right way is to add such a test and figure out the appropriate behavior.
On 24 February 2010 11:06, Alexandre Julliard julliard@winehq.org wrote:
Reece Dunn msclrhd@googlemail.com writes:
NOTE: A check for integer overflow would be `position.low + move.low < position.low`, but there are no current tests to say if integer overflow is handled (and how it is handled) here in the tests. Therefore, the simplest implementation is just to remove the previous check.
It may be the simplest, but the right way is to add such a test and figure out the appropriate behavior.
Will do -- that was next on my things to do.
Do I need to do that first before this change, or after it?
- Reece
Reece Dunn msclrhd@googlemail.com writes:
On 24 February 2010 11:06, Alexandre Julliard julliard@winehq.org wrote:
It may be the simplest, but the right way is to add such a test and figure out the appropriate behavior.
Will do -- that was next on my things to do.
Do I need to do that first before this change, or after it?
Before, since otherwise you are removing code that may still be needed.
On 24 February 2010 11:41, Alexandre Julliard julliard@winehq.org wrote:
Reece Dunn msclrhd@googlemail.com writes:
On 24 February 2010 11:06, Alexandre Julliard julliard@winehq.org wrote:
It may be the simplest, but the right way is to add such a test and figure out the appropriate behavior.
Will do -- that was next on my things to do.
Do I need to do that first before this change, or after it?
Before, since otherwise you are removing code that may still be needed.
I have run some tests on XP and Win7:
Seek 0xFFFFFFFF: hr=80030019, High=00000000, Low=00000000 Seek 0x80000000: hr=80030019, High=00000000, Low=00000000 Seek 0x7FFFFFFF: hr=00000000, High=00000000, Low=7fffffff Seek 0x00000009: hr=00000000, High=00000000, Low=80000008 Seek 0x7FFFFFFF: hr=00000000, High=00000000, Low=00000007
So it looks like Windows: 1/ does not accept a LowPart that is greater than 0x7FFFFFFF; 2/ does not check for integer overflow.
I will clean these up and write them as proper tests for ole32:hglobalstream and then fix the todo blocks to implement the correct behaviour later on today.
Thanks, - Reece