diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2026-06-04 20:59:23 +0200 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2026-06-04 21:13:42 +0200 |
| commit | 28e1cb53983f31b89f0f2add0a103616d4f11e28 (patch) | |
| tree | c00c79f07709ed27e30a28076d8f0609e7da8fc2 /src/Erebos | |
| parent | 9fd045d5dd5a2d9b210847451fb6fc0837a00068 (diff) | |
Use mergeUniq in storedRoots lookup instead of filterAncestors
Diffstat (limited to 'src/Erebos')
| -rw-r--r-- | src/Erebos/Storage/Graph.hs | 6 |
1 files changed, 3 insertions, 3 deletions
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 |