From: Dmitry Stogov Date: Mon, 23 Jul 2018 13:53:44 +0000 (+0300) Subject: Avoid code duplication X-Git-Tag: php-7.3.0beta1~74^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d4e60a1ffdaa63f4993d8c4c23eba998a8abc555;p=php Avoid code duplication --- diff --git a/ext/standard/array.c b/ext/standard/array.c index ec402eac36..25e8520cc8 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -3100,14 +3100,10 @@ static void php_splice(HashTable *in_hash, zend_long offset, zend_long length, H p = in_hash->arData + idx; if (Z_TYPE(p->val) == IS_UNDEF) continue; pos2++; - if (p->key == NULL) { - zend_hash_del_bucket(in_hash, p); + if (p->key && in_hash == &EG(symbol_table)) { + zend_delete_global_variable(p->key); } else { - if (in_hash == &EG(symbol_table)) { - zend_delete_global_variable(p->key); - } else { - zend_hash_del_bucket(in_hash, p); - } + zend_hash_del_bucket(in_hash, p); } } } @@ -3231,12 +3227,8 @@ PHP_FUNCTION(array_pop) } /* Delete the last value */ - if (p->key) { - if (Z_ARRVAL_P(stack) == &EG(symbol_table)) { - zend_delete_global_variable(p->key); - } else { - zend_hash_del_bucket(Z_ARRVAL_P(stack), p); - } + if (p->key && Z_ARRVAL_P(stack) == &EG(symbol_table)) { + zend_delete_global_variable(p->key); } else { zend_hash_del_bucket(Z_ARRVAL_P(stack), p); } @@ -3281,12 +3273,8 @@ PHP_FUNCTION(array_shift) ZVAL_COPY_DEREF(return_value, val); /* Delete the first value */ - if (p->key) { - if (Z_ARRVAL_P(stack) == &EG(symbol_table)) { - zend_delete_global_variable(p->key); - } else { - zend_hash_del_bucket(Z_ARRVAL_P(stack), p); - } + if (p->key && Z_ARRVAL_P(stack) == &EG(symbol_table)) { + zend_delete_global_variable(p->key); } else { zend_hash_del_bucket(Z_ARRVAL_P(stack), p); }