summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-04-03 17:43:23 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-04-03 17:43:23 +0000
commit6fc9266916f08dacf1850556174b6312eefb14e6 (patch)
treed71efb2e3d8f34d5a58289c3b086d9c3695a79d4 /pp_hot.c
parent9ec26bd9beab1b3c385bfa1981766ac62a926a52 (diff)
downloadperl-6fc9266916f08dacf1850556174b6312eefb14e6.tar.gz
remove duplicate code and an extra branch in sv_setsv() and
other hot code by making SvTHINKFIRST() think about FAKE SVs p4raw-id: //depot/perl@3213
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/pp_hot.c b/pp_hot.c
index 0785f5ff71..cdfe8c430b 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -733,16 +733,10 @@ PP(pp_aassign)
}
break;
default:
- if (SvTHINKFIRST(sv)) {
- if (SvREADONLY(sv) && PL_curcop != &PL_compiling) {
- if (!SvIMMORTAL(sv))
- DIE(PL_no_modify);
- if (relem <= lastrelem)
- relem++;
- break;
- }
- if (SvROK(sv))
- sv_unref(sv);
+ if (SvIMMORTAL(sv)) {
+ if (relem <= lastrelem)
+ relem++;
+ break;
}
if (relem <= lastrelem) {
sv_setsv(sv, *relem);