@@ -461,76 +461,99 @@ typedef PyObject* (*f20)(PyObject*, PyObject*, PyObject*, PyObject*, PyObject*,
461
461
#define _CALL_ARITY (FUN , ...) ( (_PICK_FUN_CAST(NULL, ##__VA_ARGS__, f20, f19, f18, f17, f16, f15, f14, f13, f12, f11, f10, f9, f8, f7, f6, f5, f4, f3, f2, f1, f0))(FUN))(__VA_ARGS__)
462
462
#define ARG (__n ) explicit_cast((PyObject*)polyglot_get_arg((__n)))
463
463
464
- PyObject * wrap_direct (PyCFunction fun , ...) {
464
+ void * wrap_direct (PyCFunction fun , ...) {
465
465
PyObject * res = NULL ;
466
466
switch (polyglot_get_arg_count ()- 1 ) {
467
467
case 0 :
468
- return _CALL_ARITY (fun );
468
+ res = _CALL_ARITY (fun );
469
+ break ;
469
470
case 1 :
470
- return _CALL_ARITY (fun , ARG (1 ));
471
+ res = _CALL_ARITY (fun , ARG (1 ));
472
+ break ;
471
473
case 2 :
472
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ));
474
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ));
475
+ break ;
473
476
case 3 :
474
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ));
477
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ));
478
+ break ;
475
479
case 4 :
476
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ));
480
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ));
481
+ break ;
477
482
case 5 :
478
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ));
483
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ));
484
+ break ;
479
485
case 6 :
480
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ));
486
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ));
487
+ break ;
481
488
case 7 :
482
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ));
489
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ));
490
+ break ;
483
491
case 8 :
484
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ));
492
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ));
493
+ break ;
485
494
case 9 :
486
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ));
495
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ));
496
+ break ;
487
497
case 10 :
488
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ));
498
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ));
499
+ break ;
489
500
case 11 :
490
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ));
501
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ));
502
+ break ;
491
503
case 12 :
492
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ));
504
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ));
505
+ break ;
493
506
case 13 :
494
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ));
507
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ));
508
+ break ;
495
509
case 14 :
496
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ));
510
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ));
511
+ break ;
497
512
case 15 :
498
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ));
513
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ));
514
+ break ;
499
515
case 16 :
500
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ), ARG (16 ));
516
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ), ARG (16 ));
517
+ break ;
501
518
case 17 :
502
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ), ARG (16 ), ARG (17 ));
519
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ), ARG (16 ), ARG (17 ));
520
+ break ;
503
521
case 18 :
504
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ), ARG (16 ), ARG (17 ), ARG (18 ));
522
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ), ARG (16 ), ARG (17 ), ARG (18 ));
523
+ break ;
505
524
case 19 :
506
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ), ARG (16 ), ARG (17 ), ARG (18 ), ARG (19 ));
525
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ), ARG (16 ), ARG (17 ), ARG (18 ), ARG (19 ));
526
+ break ;
507
527
case 20 :
508
- return _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ), ARG (16 ), ARG (17 ), ARG (18 ), ARG (19 ), ARG (20 ));
528
+ res = _CALL_ARITY (fun , ARG (1 ), ARG (2 ), ARG (3 ), ARG (4 ), ARG (5 ), ARG (6 ), ARG (7 ), ARG (8 ), ARG (9 ), ARG (10 ), ARG (11 ), ARG (12 ), ARG (13 ), ARG (14 ), ARG (15 ), ARG (16 ), ARG (17 ), ARG (18 ), ARG (19 ), ARG (20 ));
529
+ break ;
530
+ default :
531
+ _PyErr_BadInternalCall (__FILE__ , __LINE__ );
532
+ res = NULL ;
509
533
}
510
- _PyErr_BadInternalCall (__FILE__ , __LINE__ );
511
- return NULL ;
534
+ return native_to_java (res );
512
535
}
513
536
514
- PyObject * wrap_varargs (PyCFunction fun , PyObject * module , PyObject * varargs ) {
515
- return fun (explicit_cast (module ), explicit_cast (varargs ));
537
+ void * wrap_varargs (PyCFunction fun , PyObject * module , PyObject * varargs ) {
538
+ return native_to_java ( fun (explicit_cast (module ), explicit_cast (varargs ) ));
516
539
}
517
540
518
- PyObject * wrap_keywords (PyCFunctionWithKeywords fun , PyObject * module , PyObject * varargs , PyObject * kwargs ) {
519
- return fun (explicit_cast (module ), explicit_cast (varargs ), explicit_cast (kwargs ));
541
+ void * wrap_keywords (PyCFunctionWithKeywords fun , PyObject * module , PyObject * varargs , PyObject * kwargs ) {
542
+ return native_to_java ( fun (explicit_cast (module ), explicit_cast (varargs ), explicit_cast (kwargs ) ));
520
543
}
521
544
522
- PyObject * wrap_noargs (PyCFunction fun , PyObject * module , PyObject * pnone ) {
523
- return fun (explicit_cast (module ), explicit_cast (pnone ));
545
+ void * wrap_noargs (PyCFunction fun , PyObject * module , PyObject * pnone ) {
546
+ return native_to_java ( fun (explicit_cast (module ), explicit_cast (pnone ) ));
524
547
}
525
548
526
- PyObject * wrap_fastcall (_PyCFunctionFast fun , PyObject * self , PyObject * * args , Py_ssize_t nargs , PyObject * kwnames ) {
549
+ void * wrap_fastcall (_PyCFunctionFast fun , PyObject * self , PyObject * * args , Py_ssize_t nargs , PyObject * kwnames ) {
527
550
Py_ssize_t i ;
528
551
for (i = 0 ; i < nargs ; i ++ ) {
529
552
args [i ] = explicit_cast (args [i ]);
530
553
}
531
- return fun (explicit_cast (self ), args , nargs , explicit_cast (kwnames ));
554
+ return native_to_java ( fun (explicit_cast (self ), args , nargs , explicit_cast (kwnames ) ));
532
555
}
533
556
534
- PyObject * wrap_unsupported (void * fun , ...) {
557
+ void * wrap_unsupported (void * fun , ...) {
535
558
return NULL ;
536
559
}
0 commit comments