X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FStable.h;h=9752a534bb8d17764e960a20ded1530913bd3616;hb=432b9c9322181a3644083e3c19b7e240d90659e7;hp=5acc6bc5140f92c7cc9ea1a65540293669444078;hpb=f86e7206ea94b48b94fb61007a1c5d55b8c60f45;p=ghc-hetmet.git diff --git a/includes/Stable.h b/includes/Stable.h index 5acc6bc..9752a53 100644 --- a/includes/Stable.h +++ b/includes/Stable.h @@ -20,7 +20,7 @@ External C Interface -------------------------------------------------------------------------- */ -extern StgPtr deRefStablePtr(StgStablePtr stable_ptr); +EXTERN_INLINE StgPtr deRefStablePtr(StgStablePtr stable_ptr); extern void freeStablePtr(StgStablePtr sp); extern StgStablePtr splitStablePtr(StgStablePtr sp); extern StgStablePtr getStablePtr(StgPtr p); @@ -40,19 +40,12 @@ extern DLL_IMPORT_RTS snEntry *stable_ptr_table; extern void freeStablePtr(StgStablePtr sp); -#if defined(__GNUC__) -# ifndef RTS_STABLE_C -extern inline -# endif +EXTERN_INLINE StgPtr deRefStablePtr(StgStablePtr sp) { ASSERT(stable_ptr_table[(StgWord)sp].ref > 0); return stable_ptr_table[(StgWord)sp].addr; } -#else -/* No support for 'extern inline' */ -extern StgPtr deRefStablePtr(StgStablePtr sp); -#endif extern void initStablePtrTable ( void ); extern void exitStablePtrTable ( void ); @@ -64,6 +57,7 @@ extern void threadStablePtrTable ( evac_fn evac, void *user ); extern void gcStablePtrTable ( void ); extern void updateStablePtrTable ( rtsBool full ); -extern void exitHashTable ( void ); +extern void stablePtrPreGC ( void ); +extern void stablePtrPostGC ( void ); #endif