@@ -2333,28 +2333,24 @@ _PyObject_FastCall(PyObject *func, PyObject **args, int nargs, PyObject *kwargs)
2333
2333
static PyObject *
2334
2334
call_function_tail (PyObject * callable , PyObject * args )
2335
2335
{
2336
- STACKLESS_GETARG ();
2337
2336
PyObject * result ;
2338
2337
2339
2338
assert (args != NULL );
2340
2339
2341
- STACKLESS_PROMOTE_ALL ();
2342
2340
if (!PyTuple_Check (args )) {
2343
2341
result = _PyObject_FastCall (callable , & args , 1 , NULL );
2344
2342
}
2345
2343
else {
2346
2344
result = PyObject_Call (callable , args , NULL );
2347
2345
}
2348
- STACKLESS_ASSERT ();
2349
2346
2350
2347
return result ;
2351
2348
}
2352
2349
2353
2350
PyObject *
2354
2351
PyObject_CallFunction (PyObject * callable , const char * format , ...)
2355
2352
{
2356
- /* Maybe need to pass this through.. need to check that.
2357
- STACKLESS_GETARG(); */
2353
+ STACKLESS_GETARG ();
2358
2354
va_list va ;
2359
2355
PyObject * args , * result ;
2360
2356
@@ -2363,7 +2359,10 @@ PyObject_CallFunction(PyObject *callable, const char *format, ...)
2363
2359
}
2364
2360
2365
2361
if (!format || !* format ) {
2366
- return _PyObject_FastCall (callable , NULL , 0 , NULL );
2362
+ STACKLESS_PROMOTE_ALL ();
2363
+ result = _PyObject_FastCall (callable , NULL , 0 , NULL );
2364
+ STACKLESS_ASSERT ();
2365
+ return result ;
2367
2366
}
2368
2367
2369
2368
va_start (va , format );
@@ -2373,16 +2372,17 @@ PyObject_CallFunction(PyObject *callable, const char *format, ...)
2373
2372
return NULL ;
2374
2373
}
2375
2374
2375
+ STACKLESS_PROMOTE_ALL ();
2376
2376
result = call_function_tail (callable , args );
2377
+ STACKLESS_ASSERT ();
2377
2378
Py_DECREF (args );
2378
2379
return result ;
2379
2380
}
2380
2381
2381
2382
PyObject *
2382
2383
_PyObject_CallFunction_SizeT (PyObject * callable , const char * format , ...)
2383
2384
{
2384
- /* Maybe need to pass this through.. need to check that.
2385
- STACKLESS_GETARG(); */
2385
+ STACKLESS_GETARG ();
2386
2386
va_list va ;
2387
2387
PyObject * args , * result ;
2388
2388
@@ -2391,7 +2391,10 @@ _PyObject_CallFunction_SizeT(PyObject *callable, const char *format, ...)
2391
2391
}
2392
2392
2393
2393
if (!format || !* format ) {
2394
- return _PyObject_FastCall (callable , NULL , 0 , NULL );
2394
+ STACKLESS_PROMOTE_ALL ();
2395
+ result = _PyObject_FastCall (callable , NULL , 0 , NULL );
2396
+ STACKLESS_ASSERT ();
2397
+ return result ;
2395
2398
}
2396
2399
2397
2400
va_start (va , format );
@@ -2401,14 +2404,17 @@ _PyObject_CallFunction_SizeT(PyObject *callable, const char *format, ...)
2401
2404
return NULL ;
2402
2405
}
2403
2406
2407
+ STACKLESS_PROMOTE_ALL ();
2404
2408
result = call_function_tail (callable , args );
2409
+ STACKLESS_ASSERT ();
2405
2410
Py_DECREF (args );
2406
2411
return result ;
2407
2412
}
2408
2413
2409
2414
static PyObject *
2410
2415
callmethod (PyObject * func , const char * format , va_list va , int is_size_t )
2411
2416
{
2417
+ STACKLESS_GETARG ();
2412
2418
PyObject * args , * result ;
2413
2419
2414
2420
assert (func != NULL );
@@ -2419,7 +2425,10 @@ callmethod(PyObject* func, const char *format, va_list va, int is_size_t)
2419
2425
}
2420
2426
2421
2427
if (!format || !* format ) {
2422
- return _PyObject_FastCall (func , NULL , 0 , NULL );
2428
+ STACKLESS_PROMOTE_ALL ();
2429
+ result = _PyObject_FastCall (func , NULL , 0 , NULL );
2430
+ STACKLESS_ASSERT ();
2431
+ return result ;
2423
2432
}
2424
2433
2425
2434
if (is_size_t ) {
@@ -2432,14 +2441,17 @@ callmethod(PyObject* func, const char *format, va_list va, int is_size_t)
2432
2441
return NULL ;
2433
2442
}
2434
2443
2444
+ STACKLESS_PROMOTE_ALL ();
2435
2445
result = call_function_tail (func , args );
2446
+ STACKLESS_ASSERT ();
2436
2447
Py_DECREF (args );
2437
2448
return result ;
2438
2449
}
2439
2450
2440
2451
PyObject *
2441
2452
PyObject_CallMethod (PyObject * o , const char * name , const char * format , ...)
2442
2453
{
2454
+ STACKLESS_GETARG ();
2443
2455
va_list va ;
2444
2456
PyObject * func = NULL ;
2445
2457
PyObject * retval = NULL ;
@@ -2453,7 +2465,9 @@ PyObject_CallMethod(PyObject *o, const char *name, const char *format, ...)
2453
2465
return NULL ;
2454
2466
2455
2467
va_start (va , format );
2468
+ STACKLESS_PROMOTE_ALL ();
2456
2469
retval = callmethod (func , format , va , 0 );
2470
+ STACKLESS_ASSERT ();
2457
2471
va_end (va );
2458
2472
Py_DECREF (func );
2459
2473
return retval ;
@@ -2463,6 +2477,7 @@ PyObject *
2463
2477
_PyObject_CallMethodId (PyObject * o , _Py_Identifier * name ,
2464
2478
const char * format , ...)
2465
2479
{
2480
+ STACKLESS_GETARG ();
2466
2481
va_list va ;
2467
2482
PyObject * func = NULL ;
2468
2483
PyObject * retval = NULL ;
@@ -2476,7 +2491,9 @@ _PyObject_CallMethodId(PyObject *o, _Py_Identifier *name,
2476
2491
return NULL ;
2477
2492
2478
2493
va_start (va , format );
2494
+ STACKLESS_PROMOTE_ALL ();
2479
2495
retval = callmethod (func , format , va , 0 );
2496
+ STACKLESS_ASSERT ();
2480
2497
va_end (va );
2481
2498
Py_DECREF (func );
2482
2499
return retval ;
@@ -2486,6 +2503,7 @@ PyObject *
2486
2503
_PyObject_CallMethod_SizeT (PyObject * o , const char * name ,
2487
2504
const char * format , ...)
2488
2505
{
2506
+ STACKLESS_GETARG ();
2489
2507
va_list va ;
2490
2508
PyObject * func = NULL ;
2491
2509
PyObject * retval ;
@@ -2498,7 +2516,9 @@ _PyObject_CallMethod_SizeT(PyObject *o, const char *name,
2498
2516
if (func == NULL )
2499
2517
return NULL ;
2500
2518
va_start (va , format );
2519
+ STACKLESS_PROMOTE_ALL ();
2501
2520
retval = callmethod (func , format , va , 1 );
2521
+ STACKLESS_ASSERT ();
2502
2522
va_end (va );
2503
2523
Py_DECREF (func );
2504
2524
return retval ;
@@ -2508,6 +2528,7 @@ PyObject *
2508
2528
_PyObject_CallMethodId_SizeT (PyObject * o , _Py_Identifier * name ,
2509
2529
const char * format , ...)
2510
2530
{
2531
+ STACKLESS_GETARG ();
2511
2532
va_list va ;
2512
2533
PyObject * func = NULL ;
2513
2534
PyObject * retval ;
@@ -2521,7 +2542,9 @@ _PyObject_CallMethodId_SizeT(PyObject *o, _Py_Identifier *name,
2521
2542
return NULL ;
2522
2543
}
2523
2544
va_start (va , format );
2545
+ STACKLESS_PROMOTE_ALL ();
2524
2546
retval = callmethod (func , format , va , 1 );
2547
+ STACKLESS_ASSERT ();
2525
2548
va_end (va );
2526
2549
Py_DECREF (func );
2527
2550
return retval ;
@@ -2585,6 +2608,7 @@ PyObject *
2585
2608
_PyObject_CallMethodIdObjArgs (PyObject * callable ,
2586
2609
struct _Py_Identifier * name , ...)
2587
2610
{
2611
+ STACKLESS_GETARG ();
2588
2612
PyObject * args , * tmp ;
2589
2613
va_list vargs ;
2590
2614
@@ -2604,7 +2628,9 @@ _PyObject_CallMethodIdObjArgs(PyObject *callable,
2604
2628
Py_DECREF (callable );
2605
2629
return NULL ;
2606
2630
}
2631
+ STACKLESS_PROMOTE_ALL ();
2607
2632
tmp = PyObject_Call (callable , args , NULL );
2633
+ STACKLESS_ASSERT ();
2608
2634
Py_DECREF (args );
2609
2635
Py_DECREF (callable );
2610
2636
0 commit comments