Base T_BASE Event T_EVENT Signal T_SIGNAL /* for 5.6 compatibility */ const char * T_PV INPUT T_BASE if (!(SvROK ($arg) && SvOBJECT (SvRV ($arg)) && SvSTASH (SvRV ($arg)) == stash_base)) croak (\"object is not of type EV::Base\"); $var = (Base)SvIV (SvRV ($arg)); T_EVENT if (!(SvROK ($arg) && SvOBJECT (SvRV ($arg)) && SvSTASH (SvRV ($arg)) == stash_event)) croak (\"object is not of type EV::Event\"); $var = (Event)SvPVX (SvRV ($arg)); T_SIGNAL if (($var = sv_signum ($arg)) <= 0) croak (\"'%s' is not a valid signal number or name\", SvPV_nolen ($arg)); OUTPUT T_BASE sv_setref_iv ($arg, "EV::Base", (IV)$var); T_EVENT $arg = e_self ($var);