summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorAndy Lester <andy@petdance.com>2006-05-02 16:09:08 -0500
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2006-05-03 09:00:39 +0000
commit4a021917c87977d18a33de03b9e43a13a14f24d7 (patch)
tree2be750879b6effdf07d64833c6d85b831de5968d /sv.c
parent294b3b3940051144b7e617afd7d93672b0fc2dfd (diff)
downloadperl-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.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sv.c b/sv.c
index 79b528b0e1..dcc7a899a9 100644
--- a/sv.c
+++ b/sv.c
@@ -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;
}