[SCIM] Re: [i18n] Possible conflict between scim and gtk2 apps

yusuke at cherubim.icw.co.jp yusuke at cherubim.icw.co.jp
Sat Oct 2 15:11:51 UTC 2004

Cc to scim list

> The reason is probably that the gcc version installed by default is not the same
> as our compiling server. If the environment you compiling gtk2 apps is not the
> same as the environment you compiling scim, you'll get the errors I said.

I investigated this issue and maybe found a problem.
James, please fix it.

-- scim_socket_transaction.cpp line 50 --
    unsigned char *m_buffer;

    SocketTransactionImpl (size_t bufsize)
        : m_buffer_size (std::max ((size_t)SCIM_TRANS_MIN_BUFSIZE, bufsize)),
          m_read_pos (SCIM_TRANS_HEADER_SIZE),
          m_write_pos (SCIM_TRANS_HEADER_SIZE),
          m_buffer (new unsigned char [std::max ((size_t)SCIM_TRANS_MIN_BUFSIZE, bufsize)]) { <<---- HERE

    ~SocketTransactionImpl () {
        delete m_buffer; <<----- and HERE
`delete m_buffer' should be `delete []  m_buffer'

-- valgrind output --
==14357== Mismatched free() / delete / delete []
==14357==    at 0x400289C5: __builtin_delete (vg_replace_malloc.c:244)
==14357==    by 0x400289E3: operator delete(void*) (vg_replace_malloc.c:253)
==14357==    by 0x454B1442: scim::SocketTransaction::~SocketTransaction() (scim_socket_transaction.cpp:60)
==14357==    by 0x45817228: SocketIMEngineGlobal::init() (scim_socket_imengine.cpp:181)
==14357==    Address 0x451B5EB8 is 0 bytes inside a block of size 2578 alloc'd
==14357==    at 0x40028862: __builtin_vec_new (vg_replace_malloc.c:203)
==14357==    by 0x400288B9: operator new[](unsigned) (vg_replace_malloc.c:216)
==14357==    by 0x454B16B3: scim::SocketTransaction::read_from_socket(scim::Socket const&, int) (scim_socket_transaction.cpp:66)
==14357==    by 0x458171F7: SocketIMEngineGlobal::init() (scim_socket_imengine.cpp:181)

  Yusuke TABATA (yusuke at cherubim.icw.co.jp)

More information about the scim mailing list