diff options
author | Nicholas Clark <nick@ccl4.org> | 2011-01-04 15:31:03 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2011-01-04 16:47:21 +0000 |
commit | 6a4854c07e439d0e6f4f2b9b853cc7087b52e34c (patch) | |
tree | ccc82b4a078f86d73e83a0f460351f4f01bf0c20 | |
parent | 746c22dbdaae0632486f06720683b9e5aabeac26 (diff) | |
download | perl-6a4854c07e439d0e6f4f2b9b853cc7087b52e34c.tar.gz |
Convert tied READ to using S_tied_handle_method()
-rw-r--r-- | pp_sys.c | 11 |
1 files changed, 4 insertions, 7 deletions
@@ -1601,14 +1601,11 @@ PP(pp_sysread) if ((PL_op->op_type == OP_READ || PL_op->op_type == OP_SYSREAD) && gv && (io = GvIO(gv)) ) { - const MAGIC * mg = SvTIED_mg((const SV *)io, PERL_MAGIC_tiedscalar); + MAGIC *const mg = SvTIED_mg((const SV *)io, PERL_MAGIC_tiedscalar); if (mg) { - PUSHMARK(MARK-1); - *MARK = SvTIED_obj(MUTABLE_SV(io), mg); - ENTER; - call_method("READ", G_SCALAR); - LEAVE; - return NORMAL; + return S_tied_handle_method(aTHX_ "READ", mark - 1, io, mg, + G_SCALAR | ARGUMENTS_ON_STACK + | (sp - mark) << TIED_HANDLE_ARGC_SHIFT); } } |