summaryrefslogtreecommitdiff
path: root/ext/B
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2015-01-20 01:05:38 -0500
committerTony Cook <tony@develop-help.com>2015-01-27 10:32:40 +1100
commit17d6506dce3aada0275a75480d0883f310e2f96f (patch)
tree031e8665d538eada6a863cb944075293b1cde0d8 /ext/B
parent372b87083a0858da5b4ebb8cbca41e6b734a4eff (diff)
downloadperl-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.xs8
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