… | |
… | |
88 | |
88 | |
89 | void |
89 | void |
90 | _install_std_cb (SV *self, int type) |
90 | _install_std_cb (SV *self, int type) |
91 | CODE: |
91 | CODE: |
92 | { |
92 | { |
93 | pe_watcher *w = GEventAPI->sv_2watcher (self); |
93 | pe_watcher *w = (pe_watcher *)GEventAPI->sv_2watcher (self); |
94 | |
94 | |
95 | if (w->callback) |
95 | if (w->callback) |
96 | croak ("Coro::Event watchers must not have a callback (see Coro::Event), caught"); |
96 | croak ("Coro::Event watchers must not have a callback (see Coro::Event), caught"); |
97 | |
97 | |
98 | { |
98 | { |
… | |
… | |
104 | AvARRAY (priv)[CD_OK ] = &PL_sv_no; |
104 | AvARRAY (priv)[CD_OK ] = &PL_sv_no; |
105 | AvARRAY (priv)[CD_HITS] = newSViv (0); |
105 | AvARRAY (priv)[CD_HITS] = newSViv (0); |
106 | AvARRAY (priv)[CD_GOT ] = newSViv (0); |
106 | AvARRAY (priv)[CD_GOT ] = newSViv (0); |
107 | SvREADONLY_on (priv); |
107 | SvREADONLY_on (priv); |
108 | |
108 | |
109 | w->callback = coro_std_cb; |
109 | w->callback = (void *)coro_std_cb; |
110 | w->ext_data = priv; |
110 | w->ext_data = priv; |
111 | |
111 | |
112 | { |
112 | { |
113 | SV *mob = newRV_noinc ((SV *)priv); |
113 | SV *mob = newRV_noinc ((SV *)priv); |
114 | sv_magicext (SvRV (self), mob, PERL_MAGIC_coro_event, 0, (char *)w, 0); |
114 | sv_magicext (SvRV (self), mob, PERL_MAGIC_coro_event, 0, (char *)w, 0); |
… | |
… | |
119 | |
119 | |
120 | void |
120 | void |
121 | _next (SV *self) |
121 | _next (SV *self) |
122 | CODE: |
122 | CODE: |
123 | { |
123 | { |
124 | pe_watcher *w = GEventAPI->sv_2watcher (self); |
124 | pe_watcher *w = (pe_watcher *)GEventAPI->sv_2watcher (self); |
125 | AV *priv = (AV *)w->ext_data; |
125 | AV *priv = (AV *)w->ext_data; |
126 | |
126 | |
127 | if (AvARRAY (priv)[CD_OK] == &PL_sv_yes) |
127 | if (AvARRAY (priv)[CD_OK] == &PL_sv_yes) |
128 | { |
128 | { |
129 | AvARRAY (priv)[CD_OK] = &PL_sv_no; |
129 | AvARRAY (priv)[CD_OK] = &PL_sv_no; |
… | |
… | |
144 | { |
144 | { |
145 | if (GIMME_V == G_VOID) |
145 | if (GIMME_V == G_VOID) |
146 | XSRETURN_EMPTY; |
146 | XSRETURN_EMPTY; |
147 | |
147 | |
148 | { |
148 | { |
149 | pe_watcher *w = GEventAPI->sv_2watcher (self); |
149 | pe_watcher *w = (pe_watcher *)GEventAPI->sv_2watcher (self); |
150 | AV *priv = (AV *)w->ext_data; |
150 | AV *priv = (AV *)w->ext_data; |
151 | |
151 | |
152 | RETVAL = newRV_inc ((SV *)priv); |
152 | RETVAL = newRV_inc ((SV *)priv); |
153 | |
153 | |
154 | /* may need to bless it now */ |
154 | /* may need to bless it now */ |