cocos2dx-lua 引擎数据报错LuaScriptHandlerMgr这个里面

ScriptHandlerMgr::HandlerType ScriptHandlerMgr::addCustomHandler(void* object, int handler)
{
assert(nullptr != object);

auto iter = _mapObjectHandlers.find(object);
VecHandlerPairs vecHandlers;
vecHandlers.clear();
HandlerType handlerType = HandlerType::EVENT_CUSTOM_BEGAN;

if (_mapObjectHandlers.end() != iter)
{
    vecHandlers = iter->second;
    handlerType = static_cast<HandlerType>((int)vecHandlers.back().first + 1);
}
assert(handlerType <= HandlerType::EVENT_CUSTOM_ENDED);

HandlerPair eventHanler = std::make_pair(handlerType, handler);
vecHandlers.push_back(eventHanler);
_mapObjectHandlers[object] = vecHandlers;

return handlerType;

}

这个方法里拿到 iter->second;的size是0 然后这里handlerType = static_cast((int)vecHandlers.back().first + 1);就崩溃了程序就闪退了 调试发现_mapObjectHandlers这个map里面一多半的值size都是0这个引擎的bug吗 还是 我代码写错了,每次都是创建一个csb的时候闪退 然后现实这里崩溃了

我用的是3.10的引擎 我看最新的官方引擎 在这个函数里面加了一行判断是如果为空就不执行了。但是我先知道为甚么创建的csb会为空呢 会闪退呢用法有问题吗

到 GitHub Cocos2d-x仓库,找到对应文件,看文件的变更记录,找到这一行变更的提交,基本就能找到PR和对应的issue,看讨论。

直接 git blame 找提交,然后根据提交找 PR 也可以