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.329 by root, Tue Nov 25 20:48:41 2008 UTC vs.
Revision 1.330 by root, Wed Nov 26 09:29:06 2008 UTC

386 if (SvREFCNT (padlist)) 386 if (SvREFCNT (padlist))
387 { 387 {
388 I32 i = AvFILLp (padlist); 388 I32 i = AvFILLp (padlist);
389 while (i >= 0) 389 while (i >= 0)
390 { 390 {
391 SV **svp = av_fetch (padlist, i--, FALSE); 391 SV **svp = AvARRAY (padlist)[i--];
392 if (svp) 392 if (svp)
393 { 393 {
394 SV *sv; 394 AvREAL_on (*svp);
395 while (&PL_sv_undef != (sv = av_pop ((AV *)*svp)))
396 SvREFCNT_dec (sv); 395 av_undef (*svp);
397
398 SvREFCNT_dec (*svp); 396 SvREFCNT_dec (*svp);
399 } 397 }
400 } 398 }
401 399
402 SvREFCNT_dec ((SV*)padlist); 400 SvREFCNT_dec ((SV*)padlist);
503 mg = sv_magicext ((SV *)cv, (SV *)newAV (), CORO_MAGIC_type_cv, &coro_cv_vtbl, 0, 0); 501 mg = sv_magicext ((SV *)cv, (SV *)newAV (), CORO_MAGIC_type_cv, &coro_cv_vtbl, 0, 0);
504 502
505 av = (AV *)mg->mg_obj; 503 av = (AV *)mg->mg_obj;
506 504
507 if (expect_false (AvFILLp (av) >= AvMAX (av))) 505 if (expect_false (AvFILLp (av) >= AvMAX (av)))
508 av_extend (av, AvMAX (av) + 1); 506 av_extend (av, AvFILLp (av) + 1);
509 507
510 AvARRAY (av)[++AvFILLp (av)] = (SV *)CvPADLIST (cv); 508 AvARRAY (av)[++AvFILLp (av)] = (SV *)CvPADLIST (cv);
511} 509}
512 510
513/** load & save, init *******************************************************/ 511/** load & save, init *******************************************************/

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines