fix: updateScript bug

1. 没有及时delete m_inputConvert,持续点击更新脚本导致内存持续增长
2. 重新new m_inputConvert之后没有connect grabCursor,导致grabCursor失效
This commit is contained in:
rankun 2020-01-19 21:29:36 +08:00
commit 22ec2eaf61

View file

@ -13,8 +13,6 @@ Controller::Controller(QString gameScript, QObject* parent) : QObject(parent)
Q_ASSERT(m_receiver); Q_ASSERT(m_receiver);
updateScript(gameScript); updateScript(gameScript);
Q_ASSERT(m_inputConvert);
connect(m_inputConvert, &InputConvertBase::grabCursor, this, &Controller::grabCursor);
} }
Controller::~Controller() Controller::~Controller()
@ -47,6 +45,9 @@ void Controller::test(QRect rc)
void Controller::updateScript(QString gameScript) void Controller::updateScript(QString gameScript)
{ {
if (m_inputConvert) {
delete m_inputConvert;
}
if (!gameScript.isEmpty()) { if (!gameScript.isEmpty()) {
InputConvertGame* convertgame = new InputConvertGame(this); InputConvertGame* convertgame = new InputConvertGame(this);
convertgame->loadKeyMap(gameScript); convertgame->loadKeyMap(gameScript);
@ -54,7 +55,8 @@ void Controller::updateScript(QString gameScript)
} else { } else {
m_inputConvert = new InputConvertNormal(this); m_inputConvert = new InputConvertNormal(this);
} }
Q_ASSERT(m_inputConvert);
connect(m_inputConvert, &InputConvertBase::grabCursor, this, &Controller::grabCursor);
} }
void Controller::postTurnOn() void Controller::postTurnOn()