[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Another blitting surface to itself crash



Thanks claudio,

I should have looked in the SDL bug tracker first, though. However, even knowing what the problem is now I cannot find the related bug report. So it may have been fixed quietly.

Lenard


claudio canepa wrote:
Lenard rulez!!! :-)

On 8/19/08, *Lenard Lindstrom* <len-l@xxxxxxxxx <mailto:len-l@xxxxxxxxx>> wrote:

    I believe I found the bug. And it was already fixed for SDL 1.3 (I
    cannot confirm it is also fixed for 1.2.13 in SVN since the site
    is down.) There should be a licensing requirement to do assembly
    level programming :-). The optimized reverse blit uses an i386
    string move instruction. The direction of the copy is controlled
    by a register flag. A cleared flag causes a forward copy, the data
    pointers are incremented. A set flag causes a reverse copy,
    decrementing data pointers. The flag was set by the SDL copy code,
    but not cleared afterwards. And the flag doesn't reset itself
    apparently. So the set flag sat there like an armed bomb until the
    next string copy instruction was executed.

    Lenard



    Lenard Lindstrom wrote:


        That seems to be it. Try out the modified SDL.dll for Pythons
        2.4. and 2.5:

        http://www3.telus.net/len_l/pygame/SDL-self-blit.zip

        md5sum:
        59a283f9383d6b5512c236d98e39c97b *SDL-self-blit.zip

        Lenard


        Lenard Lindstrom wrote:


            I will. But it will be hand-customized.

            Lenard


            Brian Fisher wrote:

                Hey Lenard,
                Can you build SDL with mingw in a way that the inlined
                assembly won't be used? (i.e. so that it uses the same
                source that VisualC does to build)