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.191 by root, Fri Oct 5 20:47:49 2007 UTC vs.
Revision 1.192 by root, Fri Oct 5 21:51:40 2007 UTC

614 GvSV (PL_errgv) = newSV (0); 614 GvSV (PL_errgv) = newSV (0);
615 GvSV (irsgv) = newSVpvn ("\n", 1); sv_magic (GvSV (irsgv), (SV *)irsgv, PERL_MAGIC_sv, "/", 0); 615 GvSV (irsgv) = newSVpvn ("\n", 1); sv_magic (GvSV (irsgv), (SV *)irsgv, PERL_MAGIC_sv, "/", 0);
616 PL_rs = newSVsv (GvSV (irsgv)); 616 PL_rs = newSVsv (GvSV (irsgv));
617 PL_defoutgv = SvREFCNT_inc (stdoutgv); 617 PL_defoutgv = SvREFCNT_inc (stdoutgv);
618 618
619 ENTER; /* necessary e.g. for dounwind */
620
619 { 621 {
620 dSP; 622 dSP;
621 LOGOP myop; 623 LOGOP myop;
622 624
623 Zero (&myop, 1, LOGOP); 625 Zero (&myop, 1, LOGOP);
624 myop.op_next = Nullop; 626 myop.op_next = Nullop;
625 myop.op_flags = OPf_WANT_VOID; 627 myop.op_flags = OPf_WANT_VOID;
626 628
627 PUSHMARK (SP); 629 PUSHMARK (SP);
628 XPUSHs (av_shift (GvAV (PL_defgv))); 630 XPUSHs (sv_2mortal (av_shift (GvAV (PL_defgv))));
629 PUTBACK; 631 PUTBACK;
630 PL_op = (OP *)&myop; 632 PL_op = (OP *)&myop;
631 PL_op = PL_ppaddr[OP_ENTERSUB](aTHX); 633 PL_op = PL_ppaddr[OP_ENTERSUB](aTHX);
632 SPAGAIN; 634 SPAGAIN;
633 } 635 }
634
635 ENTER; /* necessary e.g. for dounwind */
636} 636}
637 637
638static void 638static void
639coro_destroy (pTHX_ struct coro *coro) 639coro_destroy (pTHX_ struct coro *coro)
640{ 640{
1428 1428
1429 coro->hv = hv = newHV (); 1429 coro->hv = hv = newHV ();
1430 sv_magicext ((SV *)hv, 0, PERL_MAGIC_ext, &coro_state_vtbl, (char *)coro, 0)->mg_flags |= MGf_DUP; 1430 sv_magicext ((SV *)hv, 0, PERL_MAGIC_ext, &coro_state_vtbl, (char *)coro, 0)->mg_flags |= MGf_DUP;
1431 RETVAL = sv_bless (newRV_noinc ((SV *)hv), gv_stashpv (klass, 1)); 1431 RETVAL = sv_bless (newRV_noinc ((SV *)hv), gv_stashpv (klass, 1));
1432 1432
1433 av_extend (coro->args, items - 1);
1434
1433 for (i = 1; i < items; i++) 1435 for (i = 1; i < items; i++)
1434 av_push (coro->args, newSVsv (ST (i))); 1436 av_push (coro->args, newSVsv (ST (i)));
1435} 1437}
1436 OUTPUT: 1438 OUTPUT:
1437 RETVAL 1439 RETVAL

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines