@@ -528,7 +528,7 @@ PP(pp_die)
528
528
/* I/O. */
529
529
530
530
OP *
531
- Perl_tied_method (pTHX_ const char * const methname , SV * * sp , SV * const sv ,
531
+ Perl_tied_method (pTHX_ SV * methname , SV * * sp , SV * const sv ,
532
532
const MAGIC * const mg , const U32 flags , U32 argc , ...)
533
533
{
534
534
SV * * orig_sp = sp ;
@@ -572,7 +572,7 @@ Perl_tied_method(pTHX_ const char *const methname, SV **sp, SV *const sv,
572
572
SAVEGENERICSV (PL_ors_sv );
573
573
PL_ors_sv = newSVpvs ("\n" );
574
574
}
575
- ret_args = call_method (methname , flags & G_WANT );
575
+ ret_args = call_sv (methname , ( flags & G_WANT )| G_METHOD_NAMED );
576
576
SPAGAIN ;
577
577
orig_sp = sp ;
578
578
POPSTACK ;
@@ -623,7 +623,7 @@ PP(pp_open)
623
623
if (mg ) {
624
624
/* Method's args are same as ours ... */
625
625
/* ... except handle is replaced by the object */
626
- return Perl_tied_method (aTHX_ " OPEN" , mark - 1 , MUTABLE_SV (io ), mg ,
626
+ return Perl_tied_method (aTHX_ SV_CONST ( OPEN ) , mark - 1 , MUTABLE_SV (io ), mg ,
627
627
G_SCALAR | TIED_METHOD_ARGUMENTS_ON_STACK ,
628
628
sp - mark );
629
629
}
@@ -662,7 +662,7 @@ PP(pp_close)
662
662
if (io ) {
663
663
const MAGIC * const mg = SvTIED_mg ((const SV * )io , PERL_MAGIC_tiedscalar );
664
664
if (mg ) {
665
- return tied_method0 (" CLOSE" , SP , MUTABLE_SV (io ), mg );
665
+ return tied_method0 (SV_CONST ( CLOSE ) , SP , MUTABLE_SV (io ), mg );
666
666
}
667
667
}
668
668
}
@@ -745,7 +745,7 @@ PP(pp_fileno)
745
745
if (io
746
746
&& (mg = SvTIED_mg ((const SV * )io , PERL_MAGIC_tiedscalar )))
747
747
{
748
- return tied_method0 (" FILENO" , SP , MUTABLE_SV (io ), mg );
748
+ return tied_method0 (SV_CONST ( FILENO ) , SP , MUTABLE_SV (io ), mg );
749
749
}
750
750
751
751
if (!io || !(fp = IoIFP (io ))) {
@@ -816,7 +816,7 @@ PP(pp_binmode)
816
816
function, which I don't think that the optimiser will be able to
817
817
figure out. Although, as it's a static function, in theory it
818
818
could. */
819
- return Perl_tied_method (aTHX_ " BINMODE" , SP , MUTABLE_SV (io ), mg ,
819
+ return Perl_tied_method (aTHX_ SV_CONST ( BINMODE ) , SP , MUTABLE_SV (io ), mg ,
820
820
G_SCALAR |TIED_METHOD_MORTALIZE_NOT_NEEDED ,
821
821
discp ? 1 : 0 , discp );
822
822
}
@@ -1298,7 +1298,7 @@ PP(pp_getc)
1298
1298
const MAGIC * const mg = SvTIED_mg ((const SV * )io , PERL_MAGIC_tiedscalar );
1299
1299
if (mg ) {
1300
1300
const U32 gimme = GIMME_V ;
1301
- Perl_tied_method (aTHX_ " GETC" , SP , MUTABLE_SV (io ), mg , gimme , 0 );
1301
+ Perl_tied_method (aTHX_ SV_CONST ( GETC ) , SP , MUTABLE_SV (io ), mg , gimme , 0 );
1302
1302
if (gimme == G_SCALAR ) {
1303
1303
SPAGAIN ;
1304
1304
SvSetMagicSV_nosteal (TARG , TOPs );
@@ -1535,7 +1535,7 @@ PP(pp_prtf)
1535
1535
Move (MARK , MARK + 1 , (SP - MARK ) + 1 , SV * );
1536
1536
++ SP ;
1537
1537
}
1538
- return Perl_tied_method (aTHX_ " PRINTF" , mark - 1 , MUTABLE_SV (io ),
1538
+ return Perl_tied_method (aTHX_ SV_CONST ( PRINTF ) , mark - 1 , MUTABLE_SV (io ),
1539
1539
mg ,
1540
1540
G_SCALAR | TIED_METHOD_ARGUMENTS_ON_STACK ,
1541
1541
sp - mark );
@@ -1624,7 +1624,7 @@ PP(pp_sysread)
1624
1624
{
1625
1625
const MAGIC * const mg = SvTIED_mg ((const SV * )io , PERL_MAGIC_tiedscalar );
1626
1626
if (mg ) {
1627
- return Perl_tied_method (aTHX_ " READ" , mark - 1 , MUTABLE_SV (io ), mg ,
1627
+ return Perl_tied_method (aTHX_ SV_CONST ( READ ) , mark - 1 , MUTABLE_SV (io ), mg ,
1628
1628
G_SCALAR | TIED_METHOD_ARGUMENTS_ON_STACK ,
1629
1629
sp - mark );
1630
1630
}
@@ -1862,7 +1862,7 @@ PP(pp_syswrite)
1862
1862
PUTBACK ;
1863
1863
}
1864
1864
1865
- return Perl_tied_method (aTHX_ " WRITE" , mark - 1 , MUTABLE_SV (io ), mg ,
1865
+ return Perl_tied_method (aTHX_ SV_CONST ( WRITE ) , mark - 1 , MUTABLE_SV (io ), mg ,
1866
1866
G_SCALAR | TIED_METHOD_ARGUMENTS_ON_STACK ,
1867
1867
sp - mark );
1868
1868
}
@@ -2075,7 +2075,7 @@ PP(pp_eof)
2075
2075
RETPUSHNO ;
2076
2076
2077
2077
if ((io = GvIO (gv )) && (mg = SvTIED_mg ((const SV * )io , PERL_MAGIC_tiedscalar ))) {
2078
- return tied_method1 (" EOF" , SP , MUTABLE_SV (io ), mg , newSVuv (which ));
2078
+ return tied_method1 (SV_CONST ( EOF ) , SP , MUTABLE_SV (io ), mg , newSVuv (which ));
2079
2079
}
2080
2080
2081
2081
if (!MAXARG && (PL_op -> op_flags & OPf_SPECIAL )) { /* eof() */
@@ -2115,7 +2115,7 @@ PP(pp_tell)
2115
2115
if (io ) {
2116
2116
const MAGIC * const mg = SvTIED_mg ((const SV * )io , PERL_MAGIC_tiedscalar );
2117
2117
if (mg ) {
2118
- return tied_method0 (" TELL" , SP , MUTABLE_SV (io ), mg );
2118
+ return tied_method0 (SV_CONST ( TELL ) , SP , MUTABLE_SV (io ), mg );
2119
2119
}
2120
2120
}
2121
2121
else if (!gv ) {
@@ -2155,7 +2155,7 @@ PP(pp_sysseek)
2155
2155
SV * const offset_sv = newSViv (offset );
2156
2156
#endif
2157
2157
2158
- return tied_method2 (" SEEK" , SP , MUTABLE_SV (io ), mg , offset_sv ,
2158
+ return tied_method2 (SV_CONST ( SEEK ) , SP , MUTABLE_SV (io ), mg , offset_sv ,
2159
2159
newSViv (whence ));
2160
2160
}
2161
2161
}
0 commit comments