cpp: Use #pragma once instead of #ifndef guards
[ghc.git] / includes / rts / Stable.h
index ec867e4..75fcf4f 100644 (file)
@@ -7,12 +7,11 @@
  * Do not #include this file directly: #include "Rts.h" instead.
  *
  * To understand the structure of the RTS headers, see the wiki:
- *   http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
+ *   http://ghc.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
  *
  * ---------------------------------------------------------------------------*/
 
-#ifndef RTS_STABLE_H
-#define RTS_STABLE_H
+#pragma once
 
 EXTERN_INLINE StgPtr deRefStablePtr (StgStablePtr stable_ptr);
 StgStablePtr getStablePtr  (StgPtr p);
@@ -21,20 +20,21 @@ StgStablePtr getStablePtr  (StgPtr p);
    PRIVATE from here.
    -------------------------------------------------------------------------- */
 
-typedef struct { 
-  StgPtr  addr;                        /* Haskell object, free list, or NULL */
-  StgPtr  old;                 /* old Haskell object, used during GC */
-  StgWord ref;                 /* used for reference counting */
-  StgClosure *sn_obj;          /* the StableName object (or NULL) */
+typedef struct {
+    StgPtr  addr;                       /* Haskell object, free list, or NULL */
+    StgPtr  old;                        /* old Haskell object, used during GC */
+    StgClosure *sn_obj;         /* the StableName object (or NULL) */
 } snEntry;
 
-extern DLL_IMPORT_RTS snEntry *stable_ptr_table;
+typedef struct {
+    StgPtr addr;
+} spEntry;
+
+extern DLL_IMPORT_RTS snEntry *stable_name_table;
+extern DLL_IMPORT_RTS spEntry *stable_ptr_table;
 
 EXTERN_INLINE
 StgPtr deRefStablePtr(StgStablePtr sp)
 {
-    ASSERT(stable_ptr_table[(StgWord)sp].ref > 0);
     return stable_ptr_table[(StgWord)sp].addr;
 }
-
-#endif /* RTS_STABLE_H */