- Don't call DestroySocket if FCB->State == SOCKET_STATE_CLOSED because the FCB is already being destroyed (Irp->Cancel checks hid this bug)
- Remove the Irp->Cancel checks (hacks)
- Only return early if we can't cancel an IRP
- Add an FCB->State check in StreamSocketConnectComplete
- Store the failure status in the IRP
svn path=/trunk/; revision=40200
- Implement DC_vSelectSurface, that dereferences the old SURFACE and references the new. Use it instead of doing it manually.
- Select NULL surface when doing cleanup.
- Go back to ASSERT in GDIOBJ_ShareUnlockObjByPtr. Should (hopefully) not be hit anymore.
- Add additional functions for tracing shared locks in gdidbg.c.
- Add debugprints when leaking objects on process cleanup.
svn path=/trunk/; revision=40196
so that people added more and more code, even completely unrelated code. Finally dc.c became a fat wastedump for all the code a developer didn't know where to put.
Clean up this mess by splitting the 3600 line monster file into 5 files and moving some stuff into other files.
svn path=/trunk/; revision=40182
- Make the EBRUSHOBJ structure somewhat like XPs.
- Make the eboXxx members of the DC real EBRUSHOBJs and initialize them on DC creation. Except for IntArc they are not yet used and there still with the old way of doing it.
- Implement DC_vUpdateXxxBrush functions that update the DCs EBRUSHOBJs after changes to the dcattr.
- Implement EBRUSHOBJ_bRealizeBrush that realizes the brush by either calling the DrvRealizeBrush or EngRealizeBrush, which is currently only stubbed and this functionality is not plugged in due to other broken features.
- EBRUSHOBJ_vInit: Store the RGB color and return it in BRUSHOBJ_ulGetBrushColor.
- Implement EBRUSHOBJ_vSetSolidBrushColor, EBRUSHOBJ_vUpdate and EBRUSHOBJ_vUnrealizeBrush
- Rename PENOBJ_bla to PEN_bla.
- Make GDIOBJ_ShareUnlockObjByPtr an inline function
- Implement GDIOBJ_IncrementShareCount as inline function.
- NtGdiSelectBitmap: keep a shared reference on the selected bitmap.
- EngAssociateSurface: don't ASSERT, but fail if locking the surface handle failed.
- EngModifySurface: use an exclusive lock and handle everything inside this function.
svn path=/trunk/; revision=40179
Fixes bug #4264
- Get rid of another procedure for getting a character, can be replaced with two instructions in the only place where this procedure was called
See issue #4264 for more details.
svn path=/trunk/; revision=40176
- BITMAP_GetObject: Don't always supply compression type BI_RGB, but distinguish compression from bitmap format. A problem with BI_BITFIELDS remains, since it can't be detected that way. Add a comment to GetDIBits too, same problem - this implicit BITFIELDS -> RGB issue could be the reason for some (delayed?) drawing problems
- GetDIBits: The palette information should be copied in both operation modes so move it to the beginning of the function
- Fixes ~10 gdi32 bitmap winetests (but depends on used bit depth)
svn path=/trunk/; revision=40166