From 30ad291abbe718ff9f96469d8c86be0eee55d50c Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Thu, 18 Oct 2007 10:53:40 +0000 Subject: [PATCH] fix :print when !tablesNextToCode --- compiler/ghci/RtClosureInspect.hs | 8 ++++++++ 1 file changed, 8 insertions(+) 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 -- 1.7.10.4