Package: scim-bridge-agent Version: 0.4.16-2 Severity: normal Tags: patch scim-bridge crashes a lot when using webkit based applications like devhelp(webkit version), midori and google chrome.while these apps work fine with scim-gtk2-immodule. with google chrome,it only occurs with most recently built chrome.It maybe caused by some bugs in webkit?
here's related config: XIM=SCIM GTK_IM_MODULE=scim-bridge QT_IM_MODULE=scim-bridge XMODIFIERS="@im=SCIM" export XIM GTK_IM_MODULE QT_IM_MODULE XMODIFIERS here is the backtrace when I'm running midori,attach the scim-bridge process and then start midori and click on the "click to add shortcut" in the midori speed-dial page,then scim-bridge recieves SIGSEGV while calling get_frontend_data () . dar...@debian:~$ ps aux |grep scim-bridge darren 30644 0.0 0.0 7824 884 pts/1 S+ 05:29 0:00 scim-bridge (gdb) attach 30644 Attaching to process 30644 Reading symbols from /usr/bin/scim-bridge...done. warning: .dynamic section for "/usr/lib/libscim-1.0.so.8" is not at the expected address warning: difference appears to be caused by prelink, adjusting expectations Reading symbols from /usr/lib/libscim-1.0.so.8...done. Loaded symbols for /usr/lib/libscim-1.0.so.8 Reading symbols from /lib/i686/cmov/libdl.so.2...done. Loaded symbols for /lib/i686/cmov/libdl.so.2 Reading symbols from /usr/lib/libstdc++.so.6...done. Loaded symbols for /usr/lib/libstdc++.so.6 Reading symbols from /lib/i686/cmov/libm.so.6...done. Loaded symbols for /lib/i686/cmov/libm.so.6 Reading symbols from /lib/libgcc_s.so.1...done. Loaded symbols for /lib/libgcc_s.so.1 Reading symbols from /lib/i686/cmov/libc.so.6...done. Loaded symbols for /lib/i686/cmov/libc.so.6 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /lib/i686/cmov/libnss_compat.so.2...done. Loaded symbols for /lib/i686/cmov/libnss_compat.so.2 Reading symbols from /lib/i686/cmov/libnsl.so.1...done. Loaded symbols for /lib/i686/cmov/libnsl.so.1 Reading symbols from /lib/i686/cmov/libnss_nis.so.2...done. Loaded symbols for /lib/i686/cmov/libnss_nis.so.2 Reading symbols from /lib/i686/cmov/libnss_files.so.2...done. Loaded symbols for /lib/i686/cmov/libnss_files.so.2 Reading symbols from /usr/lib/scim-1.0/1.4.0/Config/socket.so...done. Loaded symbols for /usr/lib/scim-1.0/1.4.0/Config/socket.so Reading symbols from /usr/lib/scim-1.0/1.4.0/IMEngine/socket.so...done. Loaded symbols for /usr/lib/scim-1.0/1.4.0/IMEngine/socket.so 0xb8067424 in __kernel_vsyscall () (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. 0xb7fd612c in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::pair<unsigned int, std::string>, std::allocator<std::pair<unsigned int, std::string> > > >, std::_Select1st<std::pair<std::string const, std::vector<std::pair<unsigned int, std::string>, std::allocator<std::pair<unsigned int, std::string> > > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<unsigned int, std::string>, std::allocator<std::pair<unsigned int, std::string> > > > > >::_M_insert_unique_(std::_Rb_tree_const_iterator<std::pair<std::string const, std::vector<std::pair<unsigned int, std::string>, std::allocator<std::pair<unsigned int, std::string> > > > >, std::pair<std::string const, std::vector<std::pair<unsigned int, std::string>, std::allocator<std::pair<unsigned int, std::string> > > > const&) () from /usr/lib/libscim-1.0.so.8 (gdb) bt #0 0xb7fd612c in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::pair<unsigned int, std::string>, std::allocator<std::pair<unsigned int, std::string> > > >, std::_Select1st<std::pair<std::string const, std::vector<std::pair<unsigned int, std::string>, std::allocator<std::pair<unsigned int, std::string> > > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::pair<unsigned int, std::string>, std::allocator<std::pair<unsigned int, std::string> > > > > >::_M_insert_unique_(std::_Rb_tree_const_iterator<std::pair<std::string const, std::vector<std::pair<unsigned int, std::string>, std::allocator<std::pair<unsigned int, std::string> > > > >, std::pair<std::string const, std::vector<std::pair<unsigned int, std::string>, std::allocator<std::pair<unsigned int, std::string> > > > const&) () from /usr/lib/libscim-1.0.so.8 #1 0x0805aacf in ScimBridgeAgentIMContextImpl::focus_out (this=0x8d3dc10) at scim-bridge-agent-imcontext.cpp:657 #2 0x080503d2 in ScimBridgeAgentImpl::change_focus (this=0x8d35b18, imcontext_id=8, focus_in=false) at scim-bridge-agent.cpp:630 #3 0x08054f2c in ScimBridgeAgentClientListenerImpl::change_focus (this=0x8d3aec0, imcontext_id=8, focus_in=false) at scim-bridge-agent-client-listener.cpp:449 #4 0x08055762 in ScimBridgeAgentClientListenerImpl::process_message (this=0x8d3aec0, message=0x8d3c280) at scim-bridge-agent-client-listener.cpp:263 #5 0x0805688a in ScimBridgeAgentClientListenerImpl::handle_event (this=0x8d3aec0, event_type=8) at scim-bridge-agent-client-listener.cpp:171 #6 0x08050b10 in ScimBridgeAgentImpl::run_event_loop (this=0x8d35b18) at scim-bridge-agent.cpp:319 #7 0x08050d48 in ScimBridgeAgentImpl::launch (this=0x8d35b18) at scim-bridge-agent.cpp:360 #8 0x0804f77d in main (argc=1, argv=0xbfc9a2c4) at scim-bridge-agent-application.cpp:119 (gdb) c Continuing. Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.30-1-686 (SMP w/2 CPU cores) Locale: LANG=zh_CN.UTF-8, LC_CTYPE=zh_CN.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages scim-bridge-agent depends on: ii libc6 2.9-20 GNU C Library: Shared libraries ii libgcc1 1:4.4.0-11 GCC support library ii libscim8c2a 1.4.9-1 library for SCIM platform ii libstdc++6 4.4.0-11 The GNU Standard C++ Library v3 ii scim 1.4.9-1 smart common input method platform ii scim-modules-socket 1.4.9-1 socket modules for SCIM platform Versions of packages scim-bridge-agent recommends: ii scim-bridge-client-gtk 0.4.16-2 IME server of scim-bridge communic scim-bridge-agent suggests no packages.
--- scim-bridge-0.4.16/agent/scim-bridge-agent-imcontext.cpp 2009-02-03 22:36:14.000000000 +0800 +++ scim-bridge-0.4.16.new/agent/scim-bridge-agent-imcontext.cpp 2009-07-18 18:14:33.000000000 +0800 @@ -654,11 +654,11 @@ void ScimBridgeAgentIMContextImpl::focus_out () { - ScimBridgeAgentIMContext *focused_imcontext = static_cast<ScimBridgeAgentIMContext*> (get_imengine ()->get_frontend_data ()); - if ( !focused ) return; + ScimBridgeAgentIMContext *focused_imcontext = static_cast<ScimBridgeAgentIMContext*> (get_imengine ()->get_frontend_data ()); + get_imengine ()->set_frontend_data (static_cast<ScimBridgeAgentIMContext*> (this)); hide_preedit ();