diff --git a/Extra2D/src/core/registry.cpp b/Extra2D/src/core/registry.cpp index 9b5529b..964a864 100644 --- a/Extra2D/src/core/registry.cpp +++ b/Extra2D/src/core/registry.cpp @@ -122,8 +122,8 @@ std::vector Registry::sort() { for (auto &depType : deps) { // 查找依赖模块的索引 for (size_t j = 0; j < moduleCount_; ++j) { - if (modules_[j].valid && - std::type_index(typeid(*modules_[j].module)) == depType) { + auto &mod = *modules_[j].module; + if (modules_[j].valid && std::type_index(typeid(mod)) == depType) { adj[j].push_back(i); inDegree[i]++; break; @@ -173,8 +173,8 @@ std::vector> Registry::group() { auto deps = modules_[i].module->deps(); for (auto &depType : deps) { for (size_t j = 0; j < moduleCount_; ++j) { - if (modules_[j].valid && - std::type_index(typeid(*modules_[j].module)) == depType) { + auto &mod = *modules_[j].module; + if (modules_[j].valid && std::type_index(typeid(mod)) == depType) { adj[j].push_back(i); inDegree[i]++; break;