From 52b44ef3895813ad0d582d7aae8658d5a3c2e3b6 Mon Sep 17 00:00:00 2001 From: pini Date: Sat, 18 Dec 2010 09:09:17 +0000 Subject: [PATCH] Fix the fix that fixes parameter passing through makecontext. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9295 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/simix/smx_context_sysv.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/simix/smx_context_sysv.c b/src/simix/smx_context_sysv.c index b81509aa0b..0248f2840b 100644 --- a/src/simix/smx_context_sysv.c +++ b/src/simix/smx_context_sysv.c @@ -161,13 +161,17 @@ void smx_ctx_sysv_wrapper(int count, ...) uintptr_t ctx_addr = 0; va_list ap; smx_ctx_sysv_t context; - int i; va_start(ap, count); +#if (SIZEOF_VOIDP <= SIZEOF_INT) + ctx_addr = (uintptr_t)va_arg(ap, int); +#else + int i; for(i = 0; i < count; i++) { ctx_addr <<= 8*sizeof(int); ctx_addr |= (uintptr_t)va_arg(ap, int); } +#endif va_end(ap); context = (smx_ctx_sysv_t)ctx_addr; (context->super.code) (context->super.argc, context->super.argv); -- 2.20.1