aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhp.com!davidm <hp.com!davidm>2003-12-04 23:29:32 +0000
committerhp.com!davidm <hp.com!davidm>2003-12-04 23:29:32 +0000
commitac224b48bb15a141836db605762ab946161569ab (patch)
treee363ee9cbd151be86fa544795a480c0fa795a46d
parent7661874fbe680d2ff74c61189d5bce8211ba834e (diff)
downloadlibunwind-ac224b48bb15a141836db605762ab946161569ab.tar.gz
(sos_alloc): Fix call to cmpxchg_ptr().
(Logical change 1.136)
-rw-r--r--src/mempool.c6
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;