ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Coro/State.xs
(Generate patch)

Comparing Coro/Coro/State.xs (file contents):
Revision 1.59 by root, Mon Jul 19 01:32:27 2004 UTC vs.
Revision 1.60 by root, Mon Aug 9 02:41:27 2004 UTC

1015 if (coro->mainstack && coro->mainstack != main_mainstack) 1015 if (coro->mainstack && coro->mainstack != main_mainstack)
1016 { 1016 {
1017 struct coro temp; 1017 struct coro temp;
1018 1018
1019 PUTBACK; 1019 PUTBACK;
1020 SAVE(aTHX_ (&temp), TRANSFER_SAVE_ALL); 1020 SAVE (aTHX_ (&temp), TRANSFER_SAVE_ALL);
1021 LOAD(aTHX_ coro); 1021 LOAD (aTHX_ coro);
1022 SPAGAIN; 1022 SPAGAIN;
1023 1023
1024 destroy_stacks (aTHX); 1024 destroy_stacks (aTHX);
1025 1025
1026 LOAD((&temp)); /* this will get rid of defsv etc.. */ 1026 LOAD ((&temp)); /* this will get rid of defsv etc.. */
1027 SPAGAIN; 1027 SPAGAIN;
1028 1028
1029 coro->mainstack = 0; 1029 coro->mainstack = 0;
1030 } 1030 }
1031 1031
1060 av_clear (defav); 1060 av_clear (defav);
1061 av_fill (defav, items - 1); 1061 av_fill (defav, items - 1);
1062 while (items--) 1062 while (items--)
1063 av_store (defav, items, SvREFCNT_inc (ST(items))); 1063 av_store (defav, items, SvREFCNT_inc (ST(items)));
1064 1064
1065 mg_get (returnstk); /* isn't documentation wrong for mg_get? */ 1065 SvGETMAGIC (returnstk); /* isn't documentation wrong for mg_get? */
1066 sv = av_pop ((AV *)SvRV (returnstk)); 1066 sv = av_pop ((AV *)SvRV (returnstk));
1067 prev = (struct coro *)SvIV ((SV*)SvRV (*av_fetch ((AV *)SvRV (sv), 0, 0))); 1067 prev = (struct coro *)SvIV ((SV*)SvRV (*av_fetch ((AV *)SvRV (sv), 0, 0)));
1068 next = (struct coro *)SvIV ((SV*)SvRV (*av_fetch ((AV *)SvRV (sv), 1, 0))); 1068 next = (struct coro *)SvIV ((SV*)SvRV (*av_fetch ((AV *)SvRV (sv), 1, 0)));
1069 SvREFCNT_dec (sv); 1069 SvREFCNT_dec (sv);
1070 1070
1071 transfer(aTHX_ prev, next, 0); 1071 transfer (aTHX_ prev, next, 0);
1072 1072
1073MODULE = Coro::State PACKAGE = Coro 1073MODULE = Coro::State PACKAGE = Coro
1074 1074
1075# this is slightly dirty (should expose a c-level api) 1075# this is slightly dirty (should expose a c-level api)
1076 1076

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines