diff --git a/loader/src/utils/cocos.cpp b/loader/src/utils/cocos.cpp index 938c4411..bb4e9abe 100644 --- a/loader/src/utils/cocos.cpp +++ b/loader/src/utils/cocos.cpp @@ -500,15 +500,13 @@ void GEODE_DLL geode::cocos::handleTouchPriorityWith(cocos2d::CCNode* node, int } } void GEODE_DLL geode::cocos::handleTouchPriority(cocos2d::CCNode* node, bool force) { - node->retain(); - Loader::get()->queueInMainThread([node, force]() { - if (auto delegate = typeinfo_cast(node)) { + Loader::get()->queueInMainThread([node = Ref(node), force]() { + if (auto delegate = typeinfo_cast(*node)) { if (auto handler = CCTouchDispatcher::get()->findHandler(delegate)) { return handleTouchPriorityWith(node, handler->m_nPriority - 1, force); } } handleTouchPriorityWith(node, 0, force); - node->release(); }); }