[Bug 34463] thai2english loads ok but crashes on startup

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Sep 23 03:26:04 CDT 2013


http://bugs.winehq.org/show_bug.cgi?id=34463

rob <genrobgen5 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |

--- Comment #5 from rob <genrobgen5 at gmail.com> 2013-09-23 03:26:04 CDT ---
To Andrew Eikum <aeikum at codeweavers.com>
   Austin English <austinenglish at gmail.com> 

Hi

I tried the patch mplementing VarDecRound, unfortunately it does not seem to
have helped with [Bug 34463] thai2english.

I think there is going to be more than one bug. The visable bug at the moment
is CoGetContextToken apartment not initialised. I did a 

WINEDEBUG=+ole,+relay  wine '/root/.wine/drive_c/Program
Files/Thai2English/thai2english.exe' 2>/log

followed by

grep 'CoGetContextToken'

to give

002c:Call ole32.CoGetContextToken(030be730) ret=791f525b
trace:ole:CoGetContextToken (0x30be730)
err:ole:CoGetContextToken apartment not initialised
002c:Ret  ole32.CoGetContextToken() retval=800401f0 ret=791f525b
002d:Call ole32.CoGetContextToken(045be790) ret=791f525b
trace:ole:CoGetContextToken (0x45be790)
002d:Ret  ole32.CoGetContextToken() retval=00000000 ret=791f525b
0030:Call ole32.CoGetContextToken(046be710) ret=791f525b
trace:ole:CoGetContextToken (0x46be710)
trace:ole:CoGetContextToken apt->context_token=0x188750
0030:Ret  ole32.CoGetContextToken() retval=00000000 ret=791f525b


retval=800401f0 refers to return CO_E_NOTINITIALIZED in CoGetContextToken in
wine-1.7.2/dlls/ole32/compobj.c so apartment_find_multi_threaded() fails.

I suspect the following bit of code fails

    LIST_FOR_EACH( cursor, &apts )
    {
        struct apartment *apt = LIST_ENTRY( cursor, struct apartment, entry );
        if (apt->multi_threaded)
        {
            result = apt;
            apartment_addref(result);
            break;
        }
    }

this piece of code looks for a struct apartment in &apts (or possibly it might
create one if none exists)

&apts created by

static struct list apts = LIST_INIT( apts ); /* protected by csApartment */

however there does not appear to be any struct apartment or an appropriate
pointer in struct list

I am not sure how the program is supposed to work but there is a problem here.

Rob

-- 
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