diff options
author | defanor <defanor@uberspace.net> | 2018-04-22 02:26:26 +0300 |
---|---|---|
committer | defanor <defanor@uberspace.net> | 2018-04-22 02:26:26 +0300 |
commit | f9d699facc2a48022d44a67b6ef8eb76a6ca1233 (patch) | |
tree | 982cb57ef58f0d57360e9826599039919b81e162 | |
parent | 65668579e840b1587f7b70d0e44e11bc8ba08369 (diff) |
Fix an occasional segfault
Not sure why it happens, but calls to raptor_free_uri via finalizers
led to segfaults, and it helped to call a finalizer manually from
statementToTriple.
-rw-r--r-- | Redland/Util.hs | 8 | ||||
-rw-r--r-- | redland.cabal | 2 |
2 files changed, 7 insertions, 3 deletions
diff --git a/Redland/Util.hs b/Redland/Util.hs index 0940cfc..c7862be 100644 --- a/Redland/Util.hs +++ b/Redland/Util.hs @@ -84,7 +84,7 @@ redlandNodeToNode rn = do (_, Just t) -> Just . XMLSchema <$> uriAsString t _ -> pure Nothing pure $ LiteralNode litVal nType - _ -> ResourceNode <$> (nodeGetURI rn >>= uriAsString) + _ -> ResourceNode <$> withNew (nodeGetURI rn) uriAsString -- | A conversion function. nodeToRedlandNode :: ForeignPtr RedlandWorld @@ -186,7 +186,11 @@ statementToTriple statement = do componentToTriple f = do c <- f statement case c of - Just c' -> Just <$> redlandNodeToNode c' + Just c' -> do + n <- redlandNodeToNode c' + -- segfaulting without finalization here, not sure why. + finalizeForeignPtr c' + pure $ Just n Nothing -> pure Nothing -- | A conversion function. diff --git a/redland.cabal b/redland.cabal index 9661cf7..982dfd4 100644 --- a/redland.cabal +++ b/redland.cabal @@ -1,5 +1,5 @@ name: redland -version: 0.2.0.1 +version: 0.2.0.2 synopsis: Redland RDF library bindings description: This package provides low-level and mid-level Redland RDF library bindings, as well as some |