diff options
author | hp.com!davidm <hp.com!davidm> | 2003-12-04 23:29:32 +0000 |
---|---|---|
committer | hp.com!davidm <hp.com!davidm> | 2003-12-04 23:29:32 +0000 |
commit | ac224b48bb15a141836db605762ab946161569ab (patch) | |
tree | e363ee9cbd151be86fa544795a480c0fa795a46d | |
parent | 7661874fbe680d2ff74c61189d5bce8211ba834e (diff) | |
download | libunwind-ac224b48bb15a141836db605762ab946161569ab.tar.gz |
(sos_alloc): Fix call to cmpxchg_ptr().
(Logical change 1.136)
-rw-r--r-- | src/mempool.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mempool.c b/src/mempool.c index 8e421d5a..74380cc5 100644 --- a/src/mempool.c +++ b/src/mempool.c @@ -48,11 +48,12 @@ sos_alloc (size_t size) #ifdef HAVE_CMPXCHG union { long *lp; - char *cp; + char **cp; } u; char *old_mem; size = (size + MAX_ALIGN - 1) & -MAX_ALIGN; + u.cp = &sos_memp; do { old_mem = sos_memp; @@ -61,9 +62,8 @@ sos_alloc (size_t size) mem += size; if (mem >= sos_memory + sizeof (sos_memory)) abort (); - u.cp = sos_memp; } - while (!cmpxchg_ptr (&u.lp, old_mem, mem)); + while (!cmpxchg_ptr (u.lp, old_mem, mem)); #else static pthread_mutex_t sos_lock = PTHREAD_MUTEX_INITIALIZER; sigset_t saved_sigmask; |