Browse Source

Reverted the patch..it breaks the original behaviour of at least array_shift.

experimental/new_apache_hooks
foobar 24 years ago
parent
commit
9fe39b9604
  1. 9
      ext/standard/array.c

9
ext/standard/array.c

@ -1662,8 +1662,7 @@ static void _phpi_pop(INTERNAL_FUNCTION_PARAMETERS, int off_the_end)
{
zval **stack, /* Input stack */
**val; /* Value to be popped */
char *key = NULL;
int key_len;
HashTable *new_hash; /* New stack */
/* Get the arguments and do error-checking */
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &stack) == FAILURE) {
@ -1690,8 +1689,10 @@ static void _phpi_pop(INTERNAL_FUNCTION_PARAMETERS, int off_the_end)
INIT_PZVAL(return_value);
/* Delete the first or last value */
zend_hash_get_current_key_ex(Z_ARRVAL_PP(stack), &key, &key_len, &key_len, 0, NULL);
zend_hash_del_key_or_index(Z_ARRVAL_PP(stack), key, key_len, key_len, (key) ? HASH_DEL_KEY : HASH_DEL_INDEX);
new_hash = php_splice(Z_ARRVAL_PP(stack), (off_the_end) ? -1 : 0, 1, NULL, 0, NULL);
zend_hash_destroy(Z_ARRVAL_PP(stack));
efree(Z_ARRVAL_PP(stack));
Z_ARRVAL_PP(stack) = new_hash;
}
/* }}} */

Loading…
Cancel
Save