user32/gdi32: Fix for a crash in create_alpha_bitmap()
peter at schlaile.de
Mon Jan 31 06:18:22 CST 2011
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:
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,
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.
More information about the wine-devel