The patch seems OK to me.
Am 31.05.2010 um 07:09 schrieb Dan Kegel:
While testing Battlefield: Bad Company 2, I saw a glibc memory corruption error, so I ran with +heap,+relay,+d3d. That showed err:heap:HEAP_ValidateInUseArena Heap 0x110000: block 0x13ef80 tail overwritten at 0x13ef85 (byte 0/11 == 0x40) Inspection of code before the block in question was allocated led me to the lines
dlls/wined3d/swapchain.c:972: newArray = HeapAlloc(GetProcessHeap(), 0, sizeof(*newArray) * This->num_contexts + 1); ... newArray[This->num_contexts] = ctx; which seem to be missing some parentheses.
Sure enough, the attached patch got rid of the heap error. <swapchain.patch>