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.375 by root, Fri Oct 2 19:58:02 2009 UTC vs.
Revision 1.377 by root, Sat Oct 3 17:55:04 2009 UTC

718 { 718 {
719 CV *cv = cx->blk_sub.cv; 719 CV *cv = cx->blk_sub.cv;
720 720
721 if (expect_true (CvDEPTH (cv))) 721 if (expect_true (CvDEPTH (cv)))
722 { 722 {
723 EXTEND (SP, 3);
723 PUSHs ((SV *)CvPADLIST (cv)); 724 PUSHs ((SV *)CvPADLIST (cv));
724 PUSHs (INT2PTR (SV *, (IV)CvDEPTH (cv))); 725 PUSHs (INT2PTR (SV *, (IV)CvDEPTH (cv)));
725 PUSHs ((SV *)cv); 726 PUSHs ((SV *)cv);
726 727
727 CvDEPTH (cv) = 0; 728 CvDEPTH (cv) = 0;
1135 1136
1136 SvREFCNT_dec (coro->saved_deffh); 1137 SvREFCNT_dec (coro->saved_deffh);
1137 SvREFCNT_dec (coro->rouse_cb); 1138 SvREFCNT_dec (coro->rouse_cb);
1138 SvREFCNT_dec (coro->invoke_cb); 1139 SvREFCNT_dec (coro->invoke_cb);
1139 SvREFCNT_dec (coro->invoke_av); 1140 SvREFCNT_dec (coro->invoke_av);
1140 SvREFCNT_dec (coro->swap_sv);
1141 } 1141 }
1142} 1142}
1143 1143
1144INLINE void 1144INLINE void
1145free_coro_mortal (pTHX) 1145free_coro_mortal (pTHX)
1636 && coro->mainstack != main_mainstack 1636 && coro->mainstack != main_mainstack
1637 && coro->slot 1637 && coro->slot
1638 && !PL_dirty) 1638 && !PL_dirty)
1639 destroy_perl (aTHX_ coro); 1639 destroy_perl (aTHX_ coro);
1640 1640
1641 if (coro->next) coro->next->prev = coro->prev;
1642 if (coro->prev) coro->prev->next = coro->next;
1643 if (coro == coro_first) coro_first = coro->next;
1644
1641 cctx_destroy (coro->cctx); 1645 cctx_destroy (coro->cctx);
1642 SvREFCNT_dec (coro->startcv); 1646 SvREFCNT_dec (coro->startcv);
1643 SvREFCNT_dec (coro->args); 1647 SvREFCNT_dec (coro->args);
1648 SvREFCNT_dec (coro->swap_sv);
1644 SvREFCNT_dec (CORO_THROW); 1649 SvREFCNT_dec (CORO_THROW);
1645
1646 if (coro->next) coro->next->prev = coro->prev;
1647 if (coro->prev) coro->prev->next = coro->next;
1648 if (coro == coro_first) coro_first = coro->next;
1649 1650
1650 return 1; 1651 return 1;
1651} 1652}
1652 1653
1653static int 1654static int

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines