[PATCH] Fix coro_enterleave_hook invocations

Petr Písař ppisar at redhat.com
Tue Jun 30 13:07:07 CEST 2015


The hook has type of:

typedef void (*coro_enterleave_hook) (pTHX_ void *arg);

so it needs perl context as the first argument. It prevents from
compilation on thread-enabled perl.

Signed-off-by: Petr Písař <ppisar at redhat.com>
---
 Coro/State.xs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Coro/State.xs b/Coro/State.xs
index c2abc8c..76b546f 100644
--- a/Coro/State.xs
+++ b/Coro/State.xs
@@ -2872,7 +2872,7 @@ enterleave_unhook_xs (pTHX_ struct coro *coro, AV **avp, coro_enterleave_hook ho
     if (AvARRAY (av)[i] == (SV *)hook)
       {
         if (execute)
-          hook ((void *)AvARRAY (av)[i + 1]);
+          hook (aTHX_ (void *)AvARRAY (av)[i + 1]);
 
         memmove (AvARRAY (av) + i, AvARRAY (av) + i + 2, AvFILLp (av) - i - 1);
         av_pop (av);
@@ -2894,7 +2894,7 @@ api_enterleave_hook (pTHX_ SV *coro_sv, coro_enterleave_hook enter, void *enter_
 
   if (SvSTATE_current == coro)
     if (enter)
-      enter (aTHX enter_arg);
+      enter (aTHX_ enter_arg);
 
   enterleave_hook_xs (aTHX_ coro, &coro->on_enter_xs, enter, enter_arg);
   enterleave_hook_xs (aTHX_ coro, &coro->on_leave_xs, leave, leave_arg);
-- 
2.4.3




More information about the anyevent mailing list