summaryrefslogtreecommitdiff
path: root/src/Erebos/Storage/Graph.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Erebos/Storage/Graph.hs')
-rw-r--r--src/Erebos/Storage/Graph.hs6
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