http://bugs.winehq.org/show_bug.cgi?id=15984
--- Comment #21 from Zdenek Behan rain@matfyz.cz 2011-03-02 23:53:34 CST --- (In reply to comment #20)
Hello Zdenek,
I abandoned the hypothesis that the segmentation fault happens in surface_add_dirty_rect() after looking into ddraw_surface7_Blt(). This function is not fully implemented; a comment in the source code says so too. I won't be able to hack on Wine for a while, I hope someone can implement blitting.
Actually, I wouldn't be sure about that either. There is a TODO comment, but nothing implies that this is the case.
One thing I do know fairly certain is which surface gets b0rked. One of the traces I made shows the bogus addresses inside surface passed to IWineD3DTextureImpl_Release, which are the most likely place where the corruption happens, and incidentally, the cleaning of that structure is the last thing that happens right before segfault. I have yet to trace the surface since its creation, rather than watching its destruction.