user32/gdi32: Fix for a crash in create_alpha_bitmap()

Peter Schlaile peter at schlaile.de
Mon Jan 31 06:18:22 CST 2011


Hi Alexandre,

On Mon, 31 Jan 2011, Alexandre Julliard wrote:

> Peter Schlaile <peter at schlaile.de> writes:
>
>> Fix: X11DRV_SetDIBits() shouldn't silently change Bitmap protection, so
>>  we now restore the protection bits, that were present before instead of
>>  always changing to READONLY.
>
> No, it needs to be read-only so that we can detect further changes.

so: what is your proposal to fix the problem?

At least, wine reacts very differently than windows here :)
Read: it crashes the application I mentioned in my previous mail:
http://www.phononet.de/downloads/support/downloads/Aktueller_PNClient/PNCLIENT1.9.zip

And: from a design perspective it sounds very strange that a fast track 
optimisation *silently* changes protection bits!

That wouldn't be a problem, if windows behaved exactly the same way.
(which it most likely does not, otherwise PNClient wouldn't crash, 
right?).

And: my problem is, that I already spent three days in tracking this bug
down, so, I'm not sure, if I find the time to write test code, that will 
demonstrate the difference between windows and wine.

Should we move to bug tracker then?

>> Additional minor fix: bmi_has_alpha() tests for alpha channel != 0, but
>>  should test for alpha channel != 255.
>
> No it shouldn't, 0 is correct.

Are you sure? 0 means: everything is transparent, and that sounds like: we 
need an alpha channel, right?

Don't get me wrong, if windows behaves like that, it's ok for me, too, but 
that really sounds strange.

Cheers,
Peter

----
Peter Schlaile



More information about the wine-devel mailing list