Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 5af5b232a2dc0e42e74fa716f7cf429ba9e386ac
      
https://github.com/Perl/perl5/commit/5af5b232a2dc0e42e74fa716f7cf429ba9e386ac
  Author: Richard Leach <richardle...@users.noreply.github.com>
  Date:   2022-06-15 (Wed, 15 Jun 2022)

  Changed paths:
    M pp_hot.c

  Log Message:
  -----------
  pp_aelemfast: include fast return for non-lvals

Within the "inlined av_fetch() for simple cases" fast path, we already
operate within the bounding conditions of the if() statement. Once
AvARRAY(av)[key] is found to be null, a call of av_fetch(av,key,lval)
here just boils down to a single line:

    return lval ? av_store(av,key,newSV_type(SVt_NULL)) : NULL;

Checking the rest of pp_aelemfast, it's clear that within the fast
path, if (!sv) and (!lval), the function must eventually
PUSHs(&PL_sv_undef). So the fast path might as well do that directly.


Reply via email to