X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FStable.h;h=1de78d637601c90b97c9f79f06cdbfb17335edce;hb=72edf508ec424d744376eda2c4191e3c45111bce;hp=3eabb30ffecadac098339fcaa20312aaced708ae;hpb=9f2ceb4da7dfbc1cfd09ce54610ebe64288b9007;p=ghc-hetmet.git diff --git a/includes/Stable.h b/includes/Stable.h index 3eabb30..1de78d6 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,27 +40,20 @@ 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 ); extern void enlargeStablePtrTable ( void ); extern StgWord lookupStableName ( StgPtr p ); -extern void markStablePtrTable ( evac_fn evac ); -extern void threadStablePtrTable ( evac_fn evac ); +extern void markStablePtrTable ( evac_fn evac, void *user ); +extern void threadStablePtrTable ( evac_fn evac, void *user ); extern void gcStablePtrTable ( void ); extern void updateStablePtrTable ( rtsBool full );