… | |
… | |
21 | |
21 | |
22 | #include <stddef.h> |
22 | #include <stddef.h> |
23 | #include <stdio.h> |
23 | #include <stdio.h> |
24 | #include <errno.h> |
24 | #include <errno.h> |
25 | #include <assert.h> |
25 | #include <assert.h> |
|
|
26 | |
|
|
27 | #ifndef SvREFCNT_dec_NN |
|
|
28 | #define SvREFCNT_dec_NN(sv) SvREFCNT_dec (sv) |
|
|
29 | #endif |
|
|
30 | |
|
|
31 | #ifndef SvREFCNT_inc_NN |
|
|
32 | #define SvREFCNT_inc_NN(sv) SvREFCNT_inc (sv) |
|
|
33 | #endif |
26 | |
34 | |
27 | #ifndef SVs_PADSTALE |
35 | #ifndef SVs_PADSTALE |
28 | # define SVs_PADSTALE 0 |
36 | # define SVs_PADSTALE 0 |
29 | #endif |
37 | #endif |
30 | |
38 | |
… | |
… | |
2870 | |
2878 | |
2871 | for (i = AvFILLp (av) - 1; i >= 0; i -= 2) |
2879 | for (i = AvFILLp (av) - 1; i >= 0; i -= 2) |
2872 | if (AvARRAY (av)[i] == (SV *)hook) |
2880 | if (AvARRAY (av)[i] == (SV *)hook) |
2873 | { |
2881 | { |
2874 | if (execute) |
2882 | if (execute) |
2875 | hook ((void *)AvARRAY (av)[i + 1]); |
2883 | hook (aTHX_ (void *)AvARRAY (av)[i + 1]); |
2876 | |
2884 | |
2877 | memmove (AvARRAY (av) + i, AvARRAY (av) + i + 2, AvFILLp (av) - i - 1); |
2885 | memmove (AvARRAY (av) + i, AvARRAY (av) + i + 2, AvFILLp (av) - i - 1); |
2878 | av_pop (av); |
2886 | av_pop (av); |
2879 | av_pop (av); |
2887 | av_pop (av); |
2880 | break; |
2888 | break; |
… | |
… | |
2892 | { |
2900 | { |
2893 | struct coro *coro = SvSTATE (coro_sv); |
2901 | struct coro *coro = SvSTATE (coro_sv); |
2894 | |
2902 | |
2895 | if (SvSTATE_current == coro) |
2903 | if (SvSTATE_current == coro) |
2896 | if (enter) |
2904 | if (enter) |
2897 | enter (aTHX enter_arg); |
2905 | enter (aTHX_ enter_arg); |
2898 | |
2906 | |
2899 | enterleave_hook_xs (aTHX_ coro, &coro->on_enter_xs, enter, enter_arg); |
2907 | enterleave_hook_xs (aTHX_ coro, &coro->on_enter_xs, enter, enter_arg); |
2900 | enterleave_hook_xs (aTHX_ coro, &coro->on_leave_xs, leave, leave_arg); |
2908 | enterleave_hook_xs (aTHX_ coro, &coro->on_leave_xs, leave, leave_arg); |
2901 | } |
2909 | } |
2902 | |
2910 | |