From 28e1cb53983f31b89f0f2add0a103616d4f11e28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Thu, 4 Jun 2026 20:59:23 +0200 Subject: Use mergeUniq in storedRoots lookup instead of filterAncestors --- src/Erebos/Storage/Graph.hs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/Erebos/Storage/Graph.hs') diff --git a/src/Erebos/Storage/Graph.hs b/src/Erebos/Storage/Graph.hs index 67daa3b..815e0f7 100644 --- a/src/Erebos/Storage/Graph.hs +++ b/src/Erebos/Storage/Graph.hs @@ -160,7 +160,7 @@ commonAncestors oxs oys = sort $ gom oxs' oys' takeCommon xs [] = ( [], ( xs, [] )) -storedRoots :: Storable a => Stored a -> [Stored a] +storedRoots :: Storable a => Stored a -> [ Stored a ] storedRoots x = do let st = refStorage $ storedRef x unsafePerformIO $ withMVar (stRefRoots st) $ \ht -> do @@ -168,8 +168,8 @@ storedRoots x = do Just roots -> return roots Nothing -> do roots <- case previous y of - [] -> return [refDigest $ storedRef y] - ps -> map (refDigest . storedRef) . filterAncestors . map (wrappedLoad @Object . Ref st) . concat <$> mapM doLookup ps + [] -> return [ refDigest $ storedRef y ] + ps -> foldl' mergeUniq [] <$> mapM doLookup ps HT.insert ht (refDigest $ storedRef y) roots return roots map (wrappedLoad . Ref st) <$> doLookup x -- cgit v1.2.3