summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2011-01-04 15:31:03 +0000
committerNicholas Clark <nick@ccl4.org>2011-01-04 16:47:21 +0000
commit6a4854c07e439d0e6f4f2b9b853cc7087b52e34c (patch)
treeccc82b4a078f86d73e83a0f460351f4f01bf0c20
parent746c22dbdaae0632486f06720683b9e5aabeac26 (diff)
downloadperl-6a4854c07e439d0e6f4f2b9b853cc7087b52e34c.tar.gz
Convert tied READ to using S_tied_handle_method()
-rw-r--r--pp_sys.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/pp_sys.c b/pp_sys.c
index e645f35012..302a5698a9 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -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);
}
}