Skip to content

Commit

Permalink
Fix an issue with lazyness in the closure viewer
Browse files Browse the repository at this point in the history
  • Loading branch information
pepeiborra committed Dec 11, 2006
1 parent 121da25 commit 8d5364c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
4 changes: 3 additions & 1 deletion compiler/ghci/Linker.lhs
Expand Up @@ -202,7 +202,9 @@ recoverDCInRTS a = do
getHValue :: Name -> IO (Maybe HValue)
getHValue name = do
pls <- readIORef v_PersistentLinkerState
return$ fmap snd (lookupNameEnv (closure_env pls) name)
case lookupNameEnv (closure_env pls) name of
Just (_,x) -> return$ Just x
_ -> return Nothing
withExtendedLinkEnv :: [(Name,HValue)] -> IO a -> IO a
withExtendedLinkEnv new_env action
Expand Down
7 changes: 5 additions & 2 deletions compiler/main/GHC.hs
Expand Up @@ -2286,7 +2286,10 @@ mkSite (pkgName, modName, sitenum) =
(mkModule (stringToPackageId pkgName) (mkModuleName modName), sitenum)

obtainTerm :: Session -> Bool -> Id -> IO (Maybe Term)
obtainTerm sess force id = withSession sess $ \hsc_env ->
getHValue (varName id) >>= traverse (cvObtainTerm hsc_env force Nothing)
obtainTerm sess force id = withSession sess $ \hsc_env -> do
mb_v <- getHValue (varName id)
case mb_v of
Just v -> fmap Just$ cvObtainTerm hsc_env force (Just$ idType id) v
Nothing -> return Nothing

#endif /* GHCI */

0 comments on commit 8d5364c

Please sign in to comment.