summaryrefslogtreecommitdiff
path: root/includes/rts/storage/ClosureMacros.h
diff options
context:
space:
mode:
authorIan Lynagh <ian@well-typed.com>2012-09-21 18:36:27 +0100
committerIan Lynagh <ian@well-typed.com>2012-09-21 19:08:17 +0100
commitc88fe3975a19a6ff33bda2db1da1c424625e2223 (patch)
tree0d507066f4be5d3e9d2761f3191f279bd504afee /includes/rts/storage/ClosureMacros.h
parentef3339cf634aceddae43cc42bfe545a5461ebe36 (diff)
downloadhaskell-c88fe3975a19a6ff33bda2db1da1c424625e2223.tar.gz
Convert more RTS macros to functions
Object sizes still unchanged.
Diffstat (limited to 'includes/rts/storage/ClosureMacros.h')
-rw-r--r--includes/rts/storage/ClosureMacros.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/includes/rts/storage/ClosureMacros.h b/includes/rts/storage/ClosureMacros.h
index 8f071a21d7..849a6efbe4 100644
--- a/includes/rts/storage/ClosureMacros.h
+++ b/includes/rts/storage/ClosureMacros.h
@@ -177,16 +177,22 @@ STATIC_LINK(const StgInfoTable *info, StgClosure *p)
}
}
-#define STATIC_LINK2(info,p) \
- (*(StgClosure**)(&((p)->payload[info->layout.payload.ptrs + \
- info->layout.payload.nptrs + 1])))
+INLINE_HEADER StgClosure *STATIC_LINK2(const StgInfoTable *info,
+ StgClosure *p) {
+ return (*(StgClosure**)(&((p)->payload[info->layout.payload.ptrs +
+ info->layout.payload.nptrs + 1])));
+}
/* -----------------------------------------------------------------------------
INTLIKE and CHARLIKE closures.
-------------------------------------------------------------------------- */
-#define CHARLIKE_CLOSURE(n) ((P_)&stg_CHARLIKE_closure[(n)-MIN_CHARLIKE])
-#define INTLIKE_CLOSURE(n) ((P_)&stg_INTLIKE_closure[(n)-MIN_INTLIKE])
+INLINE_HEADER P_ CHARLIKE_CLOSURE(int n) {
+ return (P_)&stg_CHARLIKE_closure[(n)-MIN_CHARLIKE];
+}
+INLINE_HEADER P_ INTLIKE_CLOSURE(int n) {
+ return (P_)&stg_INTLIKE_closure[(n)-MIN_INTLIKE];
+}
/* ----------------------------------------------------------------------------
Macros for untagging and retagging closure pointers