diff options
author | Andy Lester <andy@petdance.com> | 2006-05-02 16:09:08 -0500 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2006-05-03 09:00:39 +0000 |
commit | 4a021917c87977d18a33de03b9e43a13a14f24d7 (patch) | |
tree | 2be750879b6effdf07d64833c6d85b831de5968d /sv.c | |
parent | 294b3b3940051144b7e617afd7d93672b0fc2dfd (diff) | |
download | perl-4a021917c87977d18a33de03b9e43a13a14f24d7.tar.gz |
optimize S_find_array_subscript
Message-ID: <20060503020908.GA2234@petdance.com>
p4raw-id: //depot/perl@28078
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -11753,16 +11753,17 @@ STATIC I32 S_find_array_subscript(pTHX_ AV *av, SV* val) { dVAR; - SV** svp; - I32 i; if (!av || SvMAGICAL(av) || !AvARRAY(av) || (AvFILLp(av) > FUV_MAX_SEARCH_SIZE)) return -1; - svp = AvARRAY(av); - for (i=AvFILLp(av); i>=0; i--) { - if (svp[i] == val && svp[i] != &PL_sv_undef) - return i; + if (val != &PL_sv_undef) { + SV ** const svp = AvARRAY(av); + I32 i; + + for (i=AvFILLp(av); i>=0; i--) + if (svp[i] == val) + return i; } return -1; } |