… | |
… | |
405 | time_real [0] = ts.tv_sec; time_real [1] = ts.tv_nsec; |
405 | time_real [0] = ts.tv_sec; time_real [1] = ts.tv_nsec; |
406 | #else |
406 | #else |
407 | dTHX; |
407 | dTHX; |
408 | UV tv[2]; |
408 | UV tv[2]; |
409 | |
409 | |
410 | u2time (aTHX_ &tv); |
410 | u2time (aTHX_ tv); |
411 | time_real [0] = tv [0]; |
411 | time_real [0] = tv [0]; |
412 | time_real [1] = tv [1] * 1000; |
412 | time_real [1] = tv [1] * 1000; |
413 | #endif |
413 | #endif |
414 | } |
414 | } |
415 | |
415 | |
… | |
… | |
545 | AV *padlist; |
545 | AV *padlist; |
546 | AV *av = (AV *)mg->mg_obj; |
546 | AV *av = (AV *)mg->mg_obj; |
547 | |
547 | |
548 | /* perl manages to free our internal AV and _then_ call us */ |
548 | /* perl manages to free our internal AV and _then_ call us */ |
549 | if (IN_DESTRUCT) |
549 | if (IN_DESTRUCT) |
550 | return; |
550 | return 0; |
551 | |
551 | |
552 | /* casting is fun. */ |
552 | /* casting is fun. */ |
553 | while (&PL_sv_undef != (SV *)(padlist = (AV *)av_pop (av))) |
553 | while (&PL_sv_undef != (SV *)(padlist = (AV *)av_pop (av))) |
554 | free_padlist (aTHX_ padlist); |
554 | free_padlist (aTHX_ padlist); |
555 | |
555 | |
… | |
… | |
736 | /* we manually unroll here, as usually 2 slots is enough */ |
736 | /* we manually unroll here, as usually 2 slots is enough */ |
737 | if (SLOT_COUNT >= 1) CXINC; |
737 | if (SLOT_COUNT >= 1) CXINC; |
738 | if (SLOT_COUNT >= 2) CXINC; |
738 | if (SLOT_COUNT >= 2) CXINC; |
739 | if (SLOT_COUNT >= 3) CXINC; |
739 | if (SLOT_COUNT >= 3) CXINC; |
740 | { |
740 | { |
741 | int i; |
741 | unsigned int i; |
742 | for (i = 3; i < SLOT_COUNT; ++i) |
742 | for (i = 3; i < SLOT_COUNT; ++i) |
743 | CXINC; |
743 | CXINC; |
744 | } |
744 | } |
745 | cxstack_ix -= SLOT_COUNT; /* undo allocation */ |
745 | cxstack_ix -= SLOT_COUNT; /* undo allocation */ |
746 | |
746 | |
… | |
… | |
1112 | |
1112 | |
1113 | load_perl (aTHX_ current); |
1113 | load_perl (aTHX_ current); |
1114 | } |
1114 | } |
1115 | |
1115 | |
1116 | { |
1116 | { |
1117 | int i; |
1117 | unsigned int i; |
1118 | |
1118 | |
1119 | for (i = 0; i < sizeof (svf) / sizeof (*svf); ++i) |
1119 | for (i = 0; i < sizeof (svf) / sizeof (*svf); ++i) |
1120 | SvREFCNT_dec (svf [i]); |
1120 | SvREFCNT_dec (svf [i]); |
1121 | |
1121 | |
1122 | SvREFCNT_dec (coro->saved_deffh); |
1122 | SvREFCNT_dec (coro->saved_deffh); |
… | |
… | |
3060 | if (!SvIOK (*svp)) croak ("Time::NVtime isn't a function pointer"); |
3060 | if (!SvIOK (*svp)) croak ("Time::NVtime isn't a function pointer"); |
3061 | |
3061 | |
3062 | nvtime = INT2PTR (double (*)(), SvIV (*svp)); |
3062 | nvtime = INT2PTR (double (*)(), SvIV (*svp)); |
3063 | |
3063 | |
3064 | svp = hv_fetch (PL_modglobal, "Time::U2time", 12, 0); |
3064 | svp = hv_fetch (PL_modglobal, "Time::U2time", 12, 0); |
3065 | u2time = INT2PTR (double (*)(), SvIV (*svp)); |
3065 | u2time = INT2PTR (void (*)(pTHX_ UV ret[2]), SvIV (*svp)); |
3066 | } |
3066 | } |
3067 | |
3067 | |
3068 | assert (("PRIO_NORMAL must be 0", !CORO_PRIO_NORMAL)); |
3068 | assert (("PRIO_NORMAL must be 0", !CORO_PRIO_NORMAL)); |
3069 | } |
3069 | } |
3070 | |
3070 | |