diff options
author | Nicholas Clark <nick@ccl4.org> | 2008-01-25 10:06:08 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2008-01-25 10:06:08 +0000 |
commit | 267cc4a8114e05742ba94bb40aa5728a5cfaa166 (patch) | |
tree | 5ea94eb29f58724c012937dff99f5fc9fd83a6da /pp_hot.c | |
parent | 3bf7733be4441d517a5d743fcbf21dd0ad133d67 (diff) | |
download | perl-267cc4a8114e05742ba94bb40aa5728a5cfaa166.tar.gz |
Using PL_sv_no in place of any !SvOK() maximum removes a little bit of
hot code in pp_iter.
p4raw-id: //depot/perl@33068
Diffstat (limited to 'pp_hot.c')
-rw-r--r-- | pp_hot.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1918,10 +1918,10 @@ PP(pp_iter) if (CxTYPE(cx) != CXt_LOOP_LAZYIV) { /* string increment */ register SV* cur = cx->blk_loop.lval_max_u.iterlval; + /* If the maximum is !SvOK(), pp_enteriter substitutes PL_sv_no. + It has SvPVX of "" and SvCUR of 0, which is what we want. */ STRLEN maxlen = 0; - const char *max = - SvOK((SV*)av) ? - SvPV_const((SV*)av, maxlen) : (const char *)""; + const char *max = SvPV_const((SV*)av, maxlen); if (!SvNIOK(cur) && SvCUR(cur) <= maxlen) { if (SvREFCNT(*itersvp) == 1 && !SvMAGICAL(*itersvp)) { /* safe to reuse old SV */ |