Hello Xinchen,

Thanks for changing array_pad and array_rand accordingly, that's very good.

I noticed a small improvement we could make to array_slice for the packed case:

We can change line 3003:
if ((Z_ARRVAL_P(input)->u.flags & HASH_FLAG_PACKED) && !preserve_keys)
=>
if ((Z_ARRVAL_P(input)->u.flags & HASH_FLAG_PACKED) && (!preserve_keys || 
offset == 0))

So whenever the input array is packed, we can of course safely use a packed 
array for the output array when preserve_keys is false, but also when 
preserve_keys is true and if (only if) the offset is zero, because offset=0 on 
a packed array will yield the same result no matter whether preserved_keys is 
true or false.

Ben


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to