From: Simon Marlow Date: Thu, 18 Oct 2007 10:53:40 +0000 (+0000) Subject: fix :print when !tablesNextToCode X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=30ad291abbe718ff9f96469d8c86be0eee55d50c fix :print when !tablesNextToCode --- diff --git a/compiler/ghci/RtClosureInspect.hs b/compiler/ghci/RtClosureInspect.hs index 10dbb16..4f9588f 100644 --- a/compiler/ghci/RtClosureInspect.hs +++ b/compiler/ghci/RtClosureInspect.hs @@ -179,7 +179,15 @@ getClosureData :: a -> IO Closure getClosureData a = case unpackClosure# a of (# iptr, ptrs, nptrs #) -> do +#ifndef GHCI_TABLES_NEXT_TO_CODE + -- the info pointer we get back from unpackClosure# is to the + -- beginning of the standard info table, but the Storable instance + -- for info tables takes into account the extra entry pointer + -- when !tablesNextToCode, so we must adjust here: + itbl <- peek (Ptr iptr `plusPtr` negate wORD_SIZE) +#else itbl <- peek (Ptr iptr) +#endif let tipe = readCType (BCI.tipe itbl) elems = fromIntegral (BCI.ptrs itbl) ptrsList = Array 0 (elems - 1) elems ptrs