On Aug-07, Simon Glover wrote:
>  In other words, if we're referencing an element outside the current
>  array bounds, then we call undef(), which creates a new PerlUndef PMC,
>  and we then use this _solely_ to call get_integer on, despite the fact
>  that we _know_ that the result is going to be zero. This seems
>  remarkably inefficient. Is there any good reason not to simply rewrite
>  the above as:
> 
>       INTVAL get_integer_keyed_int (INTVAL key) {
>         if (key >= DYNSELF.elements() || key < -DYNSELF.elements()) {
>             return 0;
>         }
>         else
>             return SUPER(key);
>     }

"Warning: use of uninitialized value". Or whatever else accessing an
undef triggers. I wasn't sure exactly what that would do, so I played
it safe and went the slow but sure route to duplicating the effect.

That was a long time ago. If we now know exactly what converting an
undef into an int should do, then we can do the same thing. Or
directly call undef.get_integer, or whatever.

Reply via email to