… | |
… | |
532 | /* is this ugly, I ask? */ |
532 | /* is this ugly, I ask? */ |
533 | LEAVE_SCOPE (0); |
533 | LEAVE_SCOPE (0); |
534 | |
534 | |
535 | /* sure it is, but more important: is it correct?? :/ */ |
535 | /* sure it is, but more important: is it correct?? :/ */ |
536 | FREETMPS; |
536 | FREETMPS; |
|
|
537 | |
|
|
538 | /*POPSTACK_TO (PL_mainstack);*//*D*//*use*/ |
537 | } |
539 | } |
538 | |
540 | |
539 | while (PL_curstackinfo->si_next) |
541 | while (PL_curstackinfo->si_next) |
540 | PL_curstackinfo = PL_curstackinfo->si_next; |
542 | PL_curstackinfo = PL_curstackinfo->si_next; |
541 | |
543 | |
542 | while (PL_curstackinfo) |
544 | while (PL_curstackinfo) |
543 | { |
545 | { |
544 | PERL_SI *p = PL_curstackinfo->si_prev; |
546 | PERL_SI *p = PL_curstackinfo->si_prev; |
545 | |
547 | |
546 | { |
548 | { /*D*//*remove*/ |
547 | dSP; |
549 | dSP; |
548 | SWITCHSTACK (PL_curstack, PL_curstackinfo->si_stack); |
550 | SWITCHSTACK (PL_curstack, PL_curstackinfo->si_stack); |
549 | PUTBACK; /* possibly superfluous */ |
551 | PUTBACK; /* possibly superfluous */ |
550 | } |
552 | } |
551 | |
553 | |
552 | if (!IN_DESTRUCT) |
554 | if (!IN_DESTRUCT) |
553 | { |
555 | { |
554 | dounwind(-1); |
556 | dounwind (-1);/*D*//*remove*/ |
555 | SvREFCNT_dec(PL_curstackinfo->si_stack); |
557 | SvREFCNT_dec (PL_curstackinfo->si_stack); |
556 | } |
558 | } |
557 | |
559 | |
558 | Safefree(PL_curstackinfo->si_cxstack); |
560 | Safefree (PL_curstackinfo->si_cxstack); |
559 | Safefree(PL_curstackinfo); |
561 | Safefree (PL_curstackinfo); |
560 | PL_curstackinfo = p; |
562 | PL_curstackinfo = p; |
561 | } |
563 | } |
562 | |
564 | |
563 | Safefree(PL_tmps_stack); |
565 | Safefree (PL_tmps_stack); |
564 | Safefree(PL_markstack); |
566 | Safefree (PL_markstack); |
565 | Safefree(PL_scopestack); |
567 | Safefree (PL_scopestack); |
566 | Safefree(PL_savestack); |
568 | Safefree (PL_savestack); |
567 | Safefree(PL_retstack); |
569 | Safefree (PL_retstack); |
568 | } |
570 | } |
569 | |
571 | |
570 | static void |
572 | static void |
571 | allocate_stack (Coro__State ctx, int alloc) |
573 | allocate_stack (Coro__State ctx, int alloc) |
572 | { |
574 | { |