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:


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