Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/773570edf681e26d4cd7f7a628f22c14a73b92fe

>---------------------------------------------------------------

commit 773570edf681e26d4cd7f7a628f22c14a73b92fe
Author: Ian Lynagh <[email protected]>
Date:   Sat Aug 25 13:32:50 2012 +0100

    More CPP macros -> inline functions

>---------------------------------------------------------------

 includes/rts/storage/ClosureMacros.h |   32 +++++++++++++++-----------------
 1 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/includes/rts/storage/ClosureMacros.h 
b/includes/rts/storage/ClosureMacros.h
index 4434418..fd8151e 100644
--- a/includes/rts/storage/ClosureMacros.h
+++ b/includes/rts/storage/ClosureMacros.h
@@ -58,35 +58,33 @@
 #define FUN_INFO_PTR_TO_STRUCT(info) ((StgFunInfoTable *)(info) - 1)
 #define THUNK_INFO_PTR_TO_STRUCT(info) ((StgThunkInfoTable *)(info) - 1)
 #define CON_INFO_PTR_TO_STRUCT(info) ((StgConInfoTable *)(info) - 1)
-#define itbl_to_fun_itbl(i) ((StgFunInfoTable *)(((StgInfoTable *)(i) + 1)) - 
1)
-#define itbl_to_ret_itbl(i) ((StgRetInfoTable *)(((StgInfoTable *)(i) + 1)) - 
1)
-#define itbl_to_thunk_itbl(i) ((StgThunkInfoTable *)(((StgInfoTable *)(i) + 
1)) - 1)
-#define itbl_to_con_itbl(i) ((StgConInfoTable *)(((StgInfoTable *)(i) + 1)) - 
1)
+INLINE_HEADER StgFunInfoTable *itbl_to_fun_itbl(const StgInfoTable *i) {return 
(StgFunInfoTable *)(i + 1) - 1;}
+INLINE_HEADER StgRetInfoTable *itbl_to_ret_itbl(const StgInfoTable *i) {return 
(StgRetInfoTable *)(i + 1) - 1;}
+INLINE_HEADER StgThunkInfoTable *itbl_to_thunk_itbl(const StgInfoTable *i) 
{return (StgThunkInfoTable *)(i + 1) - 1;}
+INLINE_HEADER StgConInfoTable *itbl_to_con_itbl(const StgInfoTable *i) {return 
(StgConInfoTable *)(i + 1) - 1;}
 #else
 #define INFO_PTR_TO_STRUCT(info) ((StgInfoTable *)info)
 #define RET_INFO_PTR_TO_STRUCT(info) ((StgRetInfoTable *)info)
 #define FUN_INFO_PTR_TO_STRUCT(info) ((StgFunInfoTable *)info)
 #define THUNK_INFO_PTR_TO_STRUCT(info) ((StgThunkInfoTable *)info)
 #define CON_INFO_PTR_TO_STRUCT(info) ((StgConInfoTable *)info)
-#define itbl_to_fun_itbl(i) ((StgFunInfoTable *)(i))
-#define itbl_to_ret_itbl(i) ((StgRetInfoTable *)(i))
-#define itbl_to_thunk_itbl(i) ((StgThunkInfoTable *)(i))
-#define itbl_to_con_itbl(i) ((StgConInfoTable *)(i))
+INLINE_HEADER StgFunInfoTable *itbl_to_fun_itbl(const StgInfoTable *i) {return 
(StgFunInfoTable *)i;}
+INLINE_HEADER StgRetInfoTable *itbl_to_ret_itbl(const StgInfoTable *i) {return 
(StgRetInfoTable *)i;}
+INLINE_HEADER StgThunkInfoTable *itbl_to_thunk_itbl(const StgInfoTable *i) 
{return (StgThunkInfoTable *)i;}
+INLINE_HEADER StgConInfoTable *itbl_to_con_itbl(const StgInfoTable *i) {return 
(StgConInfoTable *)i;}
 #endif
 
-EXTERN_INLINE StgInfoTable *get_itbl(StgClosure *c);
-EXTERN_INLINE StgInfoTable *get_itbl(StgClosure *c) {return 
INFO_PTR_TO_STRUCT(c->header.info);}
+EXTERN_INLINE StgInfoTable *get_itbl(const StgClosure *c);
+EXTERN_INLINE StgInfoTable *get_itbl(const StgClosure *c) {return 
INFO_PTR_TO_STRUCT(c->header.info);}
 
-EXTERN_INLINE StgRetInfoTable *get_ret_itbl(StgClosure *c);
-EXTERN_INLINE StgRetInfoTable *get_ret_itbl(StgClosure *c) {return 
RET_INFO_PTR_TO_STRUCT(c->header.info);}
+EXTERN_INLINE StgRetInfoTable *get_ret_itbl(const StgClosure *c);
+EXTERN_INLINE StgRetInfoTable *get_ret_itbl(const StgClosure *c) {return 
RET_INFO_PTR_TO_STRUCT(c->header.info);}
 
-INLINE_HEADER StgFunInfoTable *get_fun_itbl(StgClosure *c);
-INLINE_HEADER StgFunInfoTable *get_fun_itbl(StgClosure *c) {return 
FUN_INFO_PTR_TO_STRUCT(c->header.info);}
+INLINE_HEADER StgFunInfoTable *get_fun_itbl(const StgClosure *c) {return 
FUN_INFO_PTR_TO_STRUCT(c->header.info);}
 
-INLINE_HEADER StgThunkInfoTable *get_thunk_itbl(StgClosure *c);
-INLINE_HEADER StgThunkInfoTable *get_thunk_itbl(StgClosure *c) {return 
THUNK_INFO_PTR_TO_STRUCT(c->header.info);}
+INLINE_HEADER StgThunkInfoTable *get_thunk_itbl(const StgClosure *c) {return 
THUNK_INFO_PTR_TO_STRUCT(c->header.info);}
 
-INLINE_HEADER StgConInfoTable *get_con_itbl(StgClosure *c) {return 
CON_INFO_PTR_TO_STRUCT((c)->header.info);}
+INLINE_HEADER StgConInfoTable *get_con_itbl(const StgClosure *c) {return 
CON_INFO_PTR_TO_STRUCT((c)->header.info);}
 
 /* 
-----------------------------------------------------------------------------
    Macros for building closures



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to