… | |
… | |
667 | aio_write = EIO_WRITE |
667 | aio_write = EIO_WRITE |
668 | PROTOTYPE: $$$$$;$ |
668 | PROTOTYPE: $$$$$;$ |
669 | PPCODE: |
669 | PPCODE: |
670 | { |
670 | { |
671 | STRLEN svlen; |
671 | STRLEN svlen; |
|
|
672 | int fd = extract_fd (fh, ix == EIO_WRITE); |
672 | char *svptr = SvPVbyte (data, svlen); |
673 | char *svptr = SvPVbyte (data, svlen); |
673 | UV len = SvUV (length); |
674 | UV len = SvUV (length); |
674 | int fd; |
|
|
675 | |
675 | |
676 | if (SvTYPE (data) > SVt_PVMG) |
676 | if (SvTYPE (data) > SVt_PVMG || SvROK (data)) |
677 | croak ("illegal data argument '%s', must be plain scalar string", SvPV_nolen (data)); |
677 | croak ("illegal data argument '%s', must be plain scalar string", SvPV_nolen (data)); |
678 | |
678 | |
679 | SvUPGRADE (data, SVt_PV); |
679 | SvUPGRADE (data, SVt_PV); |
680 | SvPOK_only (data); |
680 | SvPOK_only (data); |
681 | |
681 | |
… | |
… | |
697 | svptr = SvGROW (data, len + dataoffset + 1); |
697 | svptr = SvGROW (data, len + dataoffset + 1); |
698 | } |
698 | } |
699 | |
699 | |
700 | if (len < 0) |
700 | if (len < 0) |
701 | croak ("length must not be negative"); |
701 | croak ("length must not be negative"); |
702 | |
|
|
703 | fd = extract_fd (fh, ix == EIO_WRITE); |
|
|
704 | |
702 | |
705 | { |
703 | { |
706 | dREQ; |
704 | dREQ; |
707 | |
705 | |
708 | req->type = ix; |
706 | req->type = ix; |