diff options
| author | 2026-03-28 21:32:23 +0000 | |
|---|---|---|
| committer | 2026-03-29 00:42:15 +0000 | |
| commit | cbc5431d62e3fe9166f18395dce3ddf2af0906d3 (patch) | |
| tree | 48a87fc27dc4826ce0caf4071e2060a9ff9e24c5 /modules/spanningtree/postcommand.cpp | |
| parent | Move service code from base to its own header. (diff) | |
Switch modules from reference<> to shared_ptr<> and weak_ptr<>.
Diffstat (limited to 'modules/spanningtree/postcommand.cpp')
| -rw-r--r-- | modules/spanningtree/postcommand.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/spanningtree/postcommand.cpp b/modules/spanningtree/postcommand.cpp index 41cdfa908..b42944b3d 100644 --- a/modules/spanningtree/postcommand.cpp +++ b/modules/spanningtree/postcommand.cpp @@ -69,8 +69,10 @@ void SpanningTreeUtilities::RouteCommand(TreeServer* origin, CommandBase* thiscm } else { - auto* srcmodule = thiscmd->service_creator.ptr(); - if (!(srcmodule->properties & (VF_COMMON | VF_CORE)) && srcmodule != Creator) + // The lock here should always succeed because we were called by routing + // a command from it. + const auto& srcmodule = thiscmd->service_creator.lock(); + if (!(srcmodule->properties & (VF_COMMON | VF_CORE)) && !insp::same_ptr(srcmodule, CreatorPtr)) { ServerInstance->Logs.Normal(MODNAME, "Routed command {} from non-VF_COMMON module {}", command, srcmodule->ModuleFile); |
