Bug #6439: requesting explanation of GDI_CheckNotLock in order to fix

Alex Villací­s Lasso a_villacis at palosanto.com
Wed Oct 18 17:04:09 CDT 2006


I would like to draw attention to bug #6439 
(http://bugs.winehq.org/show_bug.cgi?id=6439) in which Enterprise 
Architect 6.5 (trial version at 
http://www.sparxsystems.com.au/bin/easetup.exe) crashes with a debug 
assertion on _CheckNotSysLevel, as detailed in the bug report. From the 
winedbg trace, the inmediate cause of this debug assertion is the call 
of GDI_CheckNotLock() at the very start of CreateCompatibleDC(), when 
the stack of callers in the same thread have already taken references to 
GDI objects via GDI_GetObjPtr(). The basic question is: why is 
_CheckNotSysLevel required at CreateCompatibleDC()? What kind of damage 
might be caused by the removal of the check (in CreateCompatibleDC() and 
DeleteDC())? On Enterprise Architect, the removal of the assertions 
allow the app to load the sample file (EAExample.eap) correctly without 
crashing, and everything appears to work normally.

-- 
The following cryptic message was allegedly found in the inner edge of a Windows
XP installation CD:

4F6E65204F5320746F2072756C65207468656D20616C6C2C204F6E65204F5320746F2066696E6420
7468656D2C0D0A4F6E65204F5320746F206272696E67207468656D20616C6C20616E6420696E2074
6865206461726B6E6573732062696E64207468656D2E0A

It is rumored that only a true Unix Wizard can decypher this mysterious message,
which supposedly encodes the true nature and purpose of the software.




More information about the wine-devel mailing list