summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2014-04-29 12:27:42 -0400
committerTony Cook <tony@develop-help.com>2014-05-29 16:28:41 +1000
commita2d8379b96447607acb2221e284e1f5436dd64d8 (patch)
treec56bdeca2685a6d796de539d4400c3935f89da41
parentd4825b278e28006bdc9c3f36ab174eade62d6c4c (diff)
downloadperl-a2d8379b96447607acb2221e284e1f5436dd64d8.tar.gz
cleanup on commit "Pseudo-fork dups arg array on argless calls"
less branching, less cpu intructions, easier to read
-rw-r--r--sv.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/sv.c b/sv.c
index c213919275..06c0b8399f 100644
--- a/sv.c
+++ b/sv.c
@@ -12898,14 +12898,13 @@ Perl_cx_dup(pTHX_ PERL_CONTEXT *cxs, I32 ix, I32 max, CLONE_PARAMS* param)
ncx->blk_sub.cv = (ncx->blk_sub.olddepth == 0
? cv_dup_inc(ncx->blk_sub.cv, param)
: cv_dup(ncx->blk_sub.cv,param));
- ncx->blk_sub.argarray = (CxHASARGS(ncx)
- ? av_dup_inc(ncx->blk_sub.argarray,
- param)
- : NULL);
- ncx->blk_sub.savearray = (CxHASARGS(ncx)
- ? av_dup_inc(ncx->blk_sub.savearray,
- param)
- : NULL);
+ if(CxHASARGS(ncx)){
+ ncx->blk_sub.argarray = av_dup_inc(ncx->blk_sub.argarray,param);
+ ncx->blk_sub.savearray = av_dup_inc(ncx->blk_sub.savearray,param);
+ } else {
+ ncx->blk_sub.argarray = NULL;
+ ncx->blk_sub.savearray = NULL;
+ }
ncx->blk_sub.oldcomppad = (PAD*)ptr_table_fetch(PL_ptr_table,
ncx->blk_sub.oldcomppad);
break;