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. ;) Thanks for your reply! Regards, -rxg _______________________________________________ Xpert mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/xpert
