… | |
… | |
474 | return 0; |
474 | return 0; |
475 | |
475 | |
476 | cv = sv_2cv (cb_sv, &st, &gvp, 0); |
476 | cv = sv_2cv (cb_sv, &st, &gvp, 0); |
477 | |
477 | |
478 | if (!cv) |
478 | if (!cv) |
479 | croak ("IO::AIO watcher callback must be undef or a CODE reference"); |
479 | croak ("IO::AIO callback must be undef or a CODE reference"); |
480 | |
480 | |
481 | return (SV *)cv; |
481 | return (SV *)cv; |
482 | } |
482 | } |
483 | |
483 | |
484 | #define dREQ \ |
484 | #define dREQ \ |
… | |
… | |
670 | req->sv1 = newSVsv (fh); |
670 | req->sv1 = newSVsv (fh); |
671 | req->int1 = PerlIO_fileno (ix == EIO_READ ? IoIFP (sv_2io (fh)) |
671 | req->int1 = PerlIO_fileno (ix == EIO_READ ? IoIFP (sv_2io (fh)) |
672 | : IoOFP (sv_2io (fh))); |
672 | : IoOFP (sv_2io (fh))); |
673 | req->offs = SvOK (offset) ? SvVAL64 (offset) : -1; |
673 | req->offs = SvOK (offset) ? SvVAL64 (offset) : -1; |
674 | req->size = len; |
674 | req->size = len; |
675 | req->sv2 = SvREFCNT_inc (data); |
675 | req->sv2 = SvREFCNT_inc_NN (data); |
676 | req->ptr2 = (char *)svptr + dataoffset; |
676 | req->ptr2 = (char *)svptr + dataoffset; |
677 | req->stroffset = dataoffset; |
677 | req->stroffset = dataoffset; |
678 | |
678 | |
679 | if (!SvREADONLY (data)) |
679 | if (!SvREADONLY (data)) |
680 | { |
680 | { |