Minor refactoring in RtClosureInspect
[ghc-hetmet.git] / compiler / ghci / ByteCodeItbls.lhs
index 9b2dac0..fd39e44 100644 (file)
@@ -6,6 +6,13 @@ ByteCodeItbls: Generate infotables for interpreter-made bytecodes
 \begin{code}
 {-# OPTIONS -optc-DNON_POSIX_SOURCE #-}
 
+{-# OPTIONS -w #-}
+-- The above warning supression flag is a temporary kludge.
+-- While working on this module you are encouraged to remove it and fix
+-- any warnings in the module. See
+--     http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
+-- for details
+
 module ByteCodeItbls ( ItblEnv, ItblPtr(..), itblCode, mkITbls
                      , StgInfoTable(..)
                      ) where
@@ -21,7 +28,7 @@ import TyCon          ( TyCon, tyConFamilySize, isDataTyCon, tyConDataCons )
 import Constants       ( mIN_PAYLOAD_SIZE, wORD_SIZE )
 import CgHeapery       ( mkVirtHeapOffsets )
 import FastString      ( FastString(..) )
-import Util             ( lengthIs, listLengthCmp )
+import Util
 import Outputable
 
 import Foreign
@@ -31,7 +38,6 @@ import Data.Bits      ( Bits(..), shiftR )
 
 import GHC.Exts                ( Int(I#), addr2Int# )
 import GHC.Ptr         ( Ptr(..) )
-import GHC.Prim
 
 import Debug.Trace
 import Text.Printf
@@ -48,10 +54,8 @@ newtype ItblPtr = ItblPtr (Ptr ()) deriving Show
 
 itblCode :: ItblPtr -> Ptr ()
 itblCode (ItblPtr ptr)
-   = (castPtr ptr)
-#ifdef GHCI_TABLES_NEXT_TO_CODE
-                 `plusPtr` conInfoTableSizeB
-#endif
+ | ghciTablesNextToCode = castPtr ptr `plusPtr` conInfoTableSizeB
+ | otherwise            = castPtr ptr
 
 -- XXX bogus
 conInfoTableSizeB = 3 * wORD_SIZE
@@ -117,7 +121,7 @@ make_constr_itbls cons
                          , code  = code
 #endif
                         }
-           qNameCString <- newCString $ dataConIdentity dcon 
+           qNameCString <- newArray0 0 $ dataConIdentity dcon 
            let conInfoTbl = StgConInfoTable {
                                  conDesc = qNameCString,
                                  infoTable = itbl
@@ -273,7 +277,7 @@ type HalfWord = Word16
 #endif
 
 data StgConInfoTable = StgConInfoTable {
-   conDesc   :: CString,
+   conDesc   :: Ptr Word8,
    infoTable :: StgInfoTable
 }