Lines 228-243
Link Here
|
228 |
extern "C" { static void s_pull(va_list param) |
228 |
extern "C" { static void s_pull(va_list param) |
229 |
{ |
229 |
{ |
230 |
uno_EnvCallee * pCallee = va_arg(param, uno_EnvCallee *); |
230 |
uno_EnvCallee * pCallee = va_arg(param, uno_EnvCallee *); |
231 |
va_list * xparam = va_arg(param, va_list *); |
231 |
#if defined(__GNUC__) && defined(X86_64) |
232 |
|
232 |
typeof(param[0]) * xparam = va_arg(param, typeof(param[0]) *); |
233 |
pCallee(*xparam); |
233 |
#else |
|
|
234 |
va_list xparam = va_arg(param, va_list); |
235 |
#endif |
236 |
pCallee(xparam); |
234 |
}} |
237 |
}} |
235 |
|
238 |
|
236 |
static void s_callInto_v(uno_Environment * pEnv, uno_EnvCallee * pCallee, va_list param) |
239 |
static void s_callInto_v(uno_Environment * pEnv, uno_EnvCallee * pCallee, va_list param) |
237 |
{ |
240 |
{ |
238 |
cppu::Enterable * pEnterable = reinterpret_cast<cppu::Enterable *>(pEnv->pReserved); |
241 |
cppu::Enterable * pEnterable = reinterpret_cast<cppu::Enterable *>(pEnv->pReserved); |
239 |
if (pEnterable) |
242 |
if (pEnterable) |
240 |
pEnterable->callInto(s_pull, pCallee, ¶m); |
243 |
pEnterable->callInto(s_pull, pCallee, param); |
241 |
|
244 |
|
242 |
else |
245 |
else |
243 |
pCallee(param); |
246 |
pCallee(param); |
Lines 278-286
Link Here
|
278 |
uno_Environment * pCurrEnv = va_arg(param, uno_Environment *); |
281 |
uno_Environment * pCurrEnv = va_arg(param, uno_Environment *); |
279 |
uno_Environment * pTargetEnv = va_arg(param, uno_Environment *); |
282 |
uno_Environment * pTargetEnv = va_arg(param, uno_Environment *); |
280 |
uno_EnvCallee * pCallee = va_arg(param, uno_EnvCallee *); |
283 |
uno_EnvCallee * pCallee = va_arg(param, uno_EnvCallee *); |
281 |
va_list * xparam = va_arg(param, va_list *); |
284 |
#if defined(__GNUC__) && defined(X86_64) |
|
|
285 |
typeof(param[0]) * xparam = va_arg(param, typeof(param[0]) *); |
286 |
#else |
287 |
va_list xparam = va_arg(param, va_list); |
288 |
#endif |
282 |
|
289 |
|
283 |
s_environment_invoke_v(pCurrEnv, pTargetEnv, pCallee, *xparam); |
290 |
s_environment_invoke_v(pCurrEnv, pTargetEnv, pCallee, xparam); |
284 |
}} |
291 |
}} |
285 |
|
292 |
|
286 |
static void s_environment_invoke_v(uno_Environment * pCurrEnv, uno_Environment * pTargetEnv, uno_EnvCallee * pCallee, va_list param) |
293 |
static void s_environment_invoke_v(uno_Environment * pCurrEnv, uno_Environment * pTargetEnv, uno_EnvCallee * pCallee, va_list param) |
Lines 290-296
Link Here
|
290 |
{ |
297 |
{ |
291 |
case -1: |
298 |
case -1: |
292 |
s_setCurrent(pNextEnv); |
299 |
s_setCurrent(pNextEnv); |
293 |
s_callOut(pCurrEnv, s_environment_invoke_vv, pNextEnv, pTargetEnv, pCallee, ¶m); |
300 |
s_callOut(pCurrEnv, s_environment_invoke_vv, pNextEnv, pTargetEnv, pCallee, param); |
294 |
s_setCurrent(pCurrEnv); |
301 |
s_setCurrent(pCurrEnv); |
295 |
break; |
302 |
break; |
296 |
|
303 |
|
Lines 304-310
Link Here
|
304 |
|
311 |
|
305 |
case 1: |
312 |
case 1: |
306 |
s_setCurrent(pNextEnv); |
313 |
s_setCurrent(pNextEnv); |
307 |
s_callInto(pNextEnv, s_environment_invoke_vv, pNextEnv, pTargetEnv, pCallee, ¶m); |
314 |
s_callInto(pNextEnv, s_environment_invoke_vv, pNextEnv, pTargetEnv, pCallee, param); |
308 |
s_setCurrent(pCurrEnv); |
315 |
s_setCurrent(pCurrEnv); |
309 |
break; |
316 |
break; |
310 |
} |
317 |
} |