[Bug 11751] Intellicad 6.4 becomes unresponsive when adding text (mtext command in icad console)
wine-bugs at winehq.org
wine-bugs at winehq.org
Wed Dec 28 12:31:48 CST 2011
http://bugs.winehq.org/show_bug.cgi?id=11751
Anastasius Focht <focht at 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 at 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 at 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
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list