http://bugs.winehq.org/show_bug.cgi?id=11751
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW URL|http://www.4msa.com/downloa |http://www.brothersoft.com/ |ds/SetupICADClassic64_E.exe |intellicad-professional-266 | |095.html CC| |focht@gmx.net Summary|Intellicad - endless loop |Intellicad 6.4 becomes |when editing rich text |unresponsive when adding |(user32 SendMessageA) |text (mtext command in icad | |console) Ever Confirmed|0 |1
--- Comment #8 from Anastasius Focht focht@gmx.net 2011-12-28 12:31:48 CST --- Hello,
confirming, still present.
Download link is busted but I found another product "Autodsys IntelliCAD 6 Standard" which seems to be created from same code base?
https://members.intellicad.org/members/products.php
Download:
http://www.brothersoft.com/intellicad-professional-266095.html
Endless looping after entering text and clicking "ok":
--- snip --- ... 0024:Call user32.SendMessageA(00000000,00000146,00000000,00000000) ret=005b5561 0024:Ret user32.SendMessageA() retval=00000000 ret=005b5561 0024:Call user32.SendMessageA(00000000,00000150,ffffffff,00000000) ret=005b5585 0024:Ret user32.SendMessageA() retval=00000000 ret=005b5585 0024:Call user32.SendMessageA(00000000,00000148,ffffffff,0032caf4) ret=005b55ae 0024:Ret user32.SendMessageA() retval=00000000 ret=005b55ae 0024:Call user32.SendMessageA(00000000,00000150,fffffffe,00000000) ret=005b5585 0024:Ret user32.SendMessageA() retval=00000000 ret=005b5585 0024:Call user32.SendMessageA(00000000,00000150,fffffffd,00000000) ret=005b5585 ... --- snip ---
The problem seems to be a missing window/dialog control. Pseudo code sequence made up from disassembly (might not be 100% accurate):
--- snip --- double dbl; LRESULT count = SendMessageA( hwnd, CB_GETCOUNT, 0, 0);
while (--count) { LRESULT lResult = SendMessage( hwnd, CB_GETITEMDATA, count, 0); if (lResult >= 0) { lResult = SendMessage( hwnd, CB_GETLBTEXT, count, buffer); if (lResult != CB_ERR) { dbl = strtod( buffer, NULL); } } } --- snip ---
Due to non-existing window/control (NULL hwnd) the SendMessage( CB_GETCOUNT) fails, returning 0. There is no error check and the loop is a (pre)decrementing loop -> -1, -2 ...
It's difficult to guess which control is actually missing here because the whole window/control hierarchy is hidden behind C++ class member data (maps to win32 handles).
One approach could be to run this app in Windows along with a Window/Message spy tool like "Winspector" or "Spy++" to figure out the window/control hierarchy. Needs further investigation ...
$ sha1sum AutodsysIntelliCAD6.4.23.2ProfessionalEditiontrial.exe e16e0caaed3cc9cad05987100287e61c57afddc2 AutodsysIntelliCAD6.4.23.2ProfessionalEditiontrial.exe
$ wine --version wine-1.3.35-194-gedd5ca7
Regards