diff options
author | Daniel Dragan <bulk88@hotmail.com> | 2015-01-20 01:05:38 -0500 |
---|---|---|
committer | Tony Cook <tony@develop-help.com> | 2015-01-27 10:32:40 +1100 |
commit | 17d6506dce3aada0275a75480d0883f310e2f96f (patch) | |
tree | 031e8665d538eada6a863cb944075293b1cde0d8 /ext/B | |
parent | 372b87083a0858da5b4ebb8cbca41e6b734a4eff (diff) | |
download | perl-17d6506dce3aada0275a75480d0883f310e2f96f.tar.gz |
factor out a dXSTARG in B::
VC 2003 -O1 placed 2 copies of dXSTARG/sv_newmortal() in machine code,
by moving to before the branch, only 1 copy will now exist
Diffstat (limited to 'ext/B')
-rw-r--r-- | ext/B/B.xs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/B/B.xs b/ext/B/B.xs index 735e2c586b..703efc0f48 100644 --- a/ext/B/B.xs +++ b/ext/B/B.xs @@ -1736,13 +1736,13 @@ REGEX(sv) PUSHs(newSVpvn_flags(RX_PRECOMP(sv), RX_PRELEN(sv), SVs_TEMP)); } else if (ix == 2) { PUSHs(make_sv_object(aTHX_ (SV *)ReANY(sv)->qr_anoncv)); - } else if (ix) { - dXSTARG; - PUSHu(RX_COMPFLAGS(sv)); } else { dXSTARG; + if (ix) + PUSHu(RX_COMPFLAGS(sv)); + else /* FIXME - can we code this method more efficiently? */ - PUSHi(PTR2IV(sv)); + PUSHi(PTR2IV(sv)); } #endif |