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的时候闪退 然后现实这里崩溃了