Crash when using Chinese input method

Engine will crash when using Chinese input method sometimes.And the easiest way to trigger the same crash is:

  1. Using a Chinese input method software ,such as QQ input method
  2. Find a SEditableText , such as one in blueprint editor
  3. Do this many times quickly: “Ctrl + Space”,"Ctrl + c"and type into some Chinese characters
  4. Engine will trigger this assert:

this code is running in MainThrd so there isn’t any Multithread Competition
Maybe the input method will trigger this function StartChangingText more than one time before “FinishChangingText”

I’d like to do more test and give more information I can get to close this bug.

虚幻对中文的支持比较欠缺,我以前用搜狗输入法经常会出现奔溃的现象,不过好想最近的几个版本这个现象少了很多。

是的,但是我觉得可以和官方沟通一下看看能否彻底解决这个问题

嗯 以前我在论坛就看到有些人提出这个问题了 你用的是多少的版本呢?

以前最严重的崩溃,主要是在4.7版本,在4.7.2有修复
但是由于国内输入法类型多样,我们有些客户甚至都没法输入。主要体现在Windows10下。
所以我希望能够协助官方彻底收拾这个问题。
虽然这个输入法也有锅

我使用的4.11.2,刚刚试了一下,好像这个问题已经解决了。你可以备份一下项目,升级到4.11.2试试。

刚刚又去试了一下,只能说4.11.2比原先好点,但是还是会触发crash。

说明你那边也触发了同样的Crash是吧。其实这个Crash也不是必现,但是在低配置机型上出现的更多一些

这个crash的触发有规律的,当你用输入法输入拼音,但是没有按空格输出汉字,再切换回英文输入法以后,输入字母就会触发,我试了好几次,都是这样的规律。

Thanks for the info. We’ve had this issue open for a while but have never been able to get a solid repro for it. I’ll try out your repro and see how I get on.

The assert itself has been removed for 4.12 so you’ll no longer get the crash when using the IME, but I can’t say whether any weird behaviour will occur (this function handles starting an undo transaction, so the second call while there’s already a transaction active will just be ignored).

Thank you for your advise and I’ll try this on 4.12