summaryrefslogtreecommitdiff
path: root/lib/libc/stdlib/malloc.c
diff options
context:
space:
mode:
authorOtto Moerbeek <otto@cvs.openbsd.org>2016-04-12 18:14:03 +0000
committerOtto Moerbeek <otto@cvs.openbsd.org>2016-04-12 18:14:03 +0000
commitdb3ff3df8b6a21fd2e95c67af75725bec455d115 (patch)
tree82de9b279bb0ba2546e34e7f150c35cf81c769c5 /lib/libc/stdlib/malloc.c
parent1467cdacbdcade531e7df0712134fd38d7841557 (diff)
two times a define to an inline function, from Michael McConville; ok djm@
Diffstat (limited to 'lib/libc/stdlib/malloc.c')
-rw-r--r--lib/libc/stdlib/malloc.c29
1 files changed, 19 insertions, 10 deletions
diff --git a/lib/libc/stdlib/malloc.c b/lib/libc/stdlib/malloc.c
index fe010f18d8e..b9f692ebb78 100644
--- a/lib/libc/stdlib/malloc.c
+++ b/lib/libc/stdlib/malloc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: malloc.c,v 1.187 2016/04/09 14:08:40 otto Exp $ */
+/* $OpenBSD: malloc.c,v 1.188 2016/04/12 18:14:02 otto Exp $ */
/*
* Copyright (c) 2008, 2010, 2011 Otto Moerbeek <otto@drijf.net>
* Copyright (c) 2012 Matthew Dempsky <matthew@openbsd.org>
@@ -93,15 +93,6 @@
#define MQUERY(a, sz) mquery((a), (size_t)(sz), PROT_READ | PROT_WRITE, \
MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, (off_t)0)
-#define _MALLOC_LEAVE(d) do { if (__isthreaded) { \
- (d)->active--; \
- _MALLOC_UNLOCK(); } \
-} while (0)
-#define _MALLOC_ENTER(d) do { if (__isthreaded) { \
- _MALLOC_LOCK(); \
- (d)->active++; } \
-} while (0)
-
struct region_info {
void *p; /* page; low bits used to mark chunks */
uintptr_t size; /* size for pages, or chunk_info pointer */
@@ -224,6 +215,24 @@ static void malloc_exit(void);
(sz) = (uintptr_t)(r)->p & MALLOC_PAGEMASK, \
(sz) = ((sz) == 0 ? (r)->size : ((sz) == 1 ? 0 : (1 << ((sz)-1))))
+static inline void
+_MALLOC_LEAVE(struct dir_info *d)
+{
+ if (__isthreaded) {
+ d->active--;
+ _MALLOC_UNLOCK();
+ }
+}
+
+static inline void
+_MALLOC_ENTER(struct dir_info *d)
+{
+ if (__isthreaded) {
+ _MALLOC_LOCK();
+ d->active++;
+ }
+}
+
static inline size_t
hash(void *p)
{