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

> > What input method are you using? I've seen another report of this for
> > Chinese (http://bugzilla.gnome.org/show_bug.cgi?id=69523); but
> > it seems to work fine for Japanese (or at least, no reports of
> > problems.)
> 
> Hello,
> I use xcin as chinese input method. Yes, this is the problem causes
> core dump. After I remove this line "setenv XMODIFIERS @im=xcin"
> from ~/.cshrc file, everything works fine.

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

Regards,
                                        Owen



_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to