Rui-Xiang Guo <[EMAIL PROTECTED]> writes:

> On Sun, Jan 27, 2002 at 01:29:48PM -0500, Owen Taylor wrote:
> > 
> > Owen Taylor <[EMAIL PROTECTED]> writes:
> > 
> > > Rui-Xiang Guo <[EMAIL PROTECTED]> writes:
> > > 
> > > OK, I was able to reproduce it and figured out the immediate
> > > problem here:
> > > 
> > >  _XDynamicRegisterIMInstantiateCallback() dlopens 'ximcp.so'
> > >   and calls _XimRegisterIMInstantiateCallback
> > > 
> > >  _XimRegisterIMInstantiateCallback() calls lcd->methods->open_im
> > >   which is _XDynamicOpenIM()
> > > 
> > >  _XDynamicOpenIM() calls _XimOpenIM from ximcp.so, which fails,
> > >   dlcloses ximcp.so and returns control to 
> > >   _XimRegisterInstantiateCallback() which is in a module that
> > >   has been unloaded, so *boom*
> > > 
> > > The solution here is presumably to add reference counting to
> > > dlopen/dlclose calls in XlcDL.c; at the same time, it would make
> > > sense to fix the problem that someone apparently never 
> > > heard that cutting and pasting 30 lines of code over and
> > > over again was a bad idea...
> > 
> > OK, here's an attempt at doing this.
> > 
> >  a) I've done little testing on it. Xcin no longer causes
> >     a crash, with it. It's probably a bad idea to commit
> >     this without someone giving it a good look over.
<> 
> Hi, I have tested it with your patch. Yeah, nor more core dump!
> But... The xcin became unusable. I can't use it as XIM server to
> input chinese. X-)
> (NOTE: xcin would be run from XFree 4.1 to 4.2 without crash.)
> ps:
> I have read some reports about this problem, some Linux distributions
> also get pain with xcin after upgrading XFree to 4.2, includes FreeBSD.
> But Mandrake's users say they don't get this situation.
> Maybe we need some help form them. ;)

I believe the cause and effect was:

 - xcin didn't work
 - This cause untested code to be run which crashed.

So, the crash was a side effect of xcin not working; I looked
at it a bit and it didn't work with:

 XMODIFIERS=@im=xcin

But it worked fine with:

 XMODIFIERS=@im=xcin-zh_TW

(At least, I got a status window to pop up.)

If the previous used to work, it probably was because Xlib used to be
less strict about checking the IM server name; xcin doesn't seem to
support 'xcin' as a servername, just xcin-zh_TW and xcin-zh_CN.

Regards,
                                        Owen
_______________________________________________
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n

Reply via email to