View | Details | Raw Unified | Return to issue 77422
Collapse All | Expand All

(-)cppu.orig/source/AffineBridge/AffineBridge.cxx (-2 / +10 lines)
Lines 273-279 Link Here
273
273
274
	m_message = CB_FPOINTER;
274
	m_message = CB_FPOINTER;
275
	m_pCallee = pCallee;
275
	m_pCallee = pCallee;
276
	m_param   = param;
276
#ifdef __va_copy
277
	__va_copy (m_param, param);
278
#else
279
	m_param = param;
280
#endif
277
	m_innerCondition.set();
281
	m_innerCondition.set();
278
282
279
	outerDispatch(1);
283
	outerDispatch(1);
Lines 306-312 Link Here
306
310
307
	m_message = CB_FPOINTER;
311
	m_message = CB_FPOINTER;
308
	m_pCallee = pCallee;
312
	m_pCallee = pCallee;
309
	m_param   = param;
313
#ifdef __va_copy
314
	__va_copy (m_param, param);
315
#else
316
	m_param = param;
317
#endif
310
	m_outerCondition.set();
318
	m_outerCondition.set();
311
319
312
	innerDispatch();
320
	innerDispatch();
(-)cppu.orig/source/uno/EnvStack.cxx (-8 / +15 lines)
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, &param);
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, &param);
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, &param);
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
	}
(-)cppu.orig/util/uno_purpenvhelpergcc3.map (+1 lines)
Lines 1-6 Link Here
1
UDK_3_0_0 {
1
UDK_3_0_0 {
2
	global:
2
	global:
3
        _ZN4cppu6helper7purpenv13createMappingEPP12_uno_MappingP16_uno_EnvironmentS6_PFvbPvS7_P33_typelib_TypeDescriptionReferenceP24_typelib_MethodParameterlPK24_typelib_TypeDescriptionS7_PS7_PP8_uno_AnyES7_;
3
        _ZN4cppu6helper7purpenv13createMappingEPP12_uno_MappingP16_uno_EnvironmentS6_PFvbPvS7_P33_typelib_TypeDescriptionReferenceP24_typelib_MethodParameterlPK24_typelib_TypeDescriptionS7_PS7_PP8_uno_AnyES7_;
4
        _ZN4cppu6helper7purpenv13createMappingEPP12_uno_MappingP16_uno_EnvironmentS6_PFvbPvS7_P33_typelib_TypeDescriptionReferenceP24_typelib_MethodParameteriPK24_typelib_TypeDescriptionS7_PS7_PP8_uno_AnyES7_;
4
        _ZN4cppu6helper7purpenv29Environment_initWithEnterableEP16_uno_EnvironmentPNS_9EnterableE;
5
        _ZN4cppu6helper7purpenv29Environment_initWithEnterableEP16_uno_EnvironmentPNS_9EnterableE;
5
6
6
	local:
7
	local:

Return to issue 77422