From b160a97f0e9f61ae189408ff2c771f3bafcfeb83 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Sat, 7 Dec 2024 04:10:22 +0100 Subject: [PATCH] [backend/core] Fix ArrayTypeMismatchException in APMentionsResolver --- .../ActivityPub/MentionsResolver.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Iceshrimp.Backend/Core/Federation/ActivityPub/MentionsResolver.cs b/Iceshrimp.Backend/Core/Federation/ActivityPub/MentionsResolver.cs index 3f7b2c44..efdec6ba 100644 --- a/Iceshrimp.Backend/Core/Federation/ActivityPub/MentionsResolver.cs +++ b/Iceshrimp.Backend/Core/Federation/ActivityPub/MentionsResolver.cs @@ -1,3 +1,4 @@ +using System.Runtime.CompilerServices; using CommunityToolkit.HighPerformance; using Iceshrimp.Backend.Core.Configuration; using Iceshrimp.Backend.Core.Database.Tables; @@ -45,6 +46,26 @@ public class MentionsResolver(IOptions config) : ISingle } } + [OverloadResolutionPriority(1)] + private void ResolveMentions( + Span nodes, string? host, + List mentionCache, + SplitDomainMapping splitDomainMapping + ) + { + for (var i = 0; i < nodes.Length; i++) + { + var node = nodes[i]; + if (node is not MfmMentionNode mention) + { + ResolveMentions(node.Children, host, mentionCache, splitDomainMapping); + continue; + } + + nodes[i] = ResolveMention(mention, host, mentionCache, splitDomainMapping); + } + } + private IMfmInlineNode ResolveMention( MfmMentionNode node, string? host, IEnumerable mentionCache,