summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>1999-06-09 21:13:05 +0000
committerAndrey Hristov <andrey@php.net>1999-06-09 21:13:05 +0000
commit3d45dd58b87b847271bdf483f7ead1db5465f86d (patch)
treec0ccb94cfaa59c5257b08b9e91b9c4f3846d3a7a
parentb484f40c31612212d20cea69e0c0d8fa204f4e8a (diff)
downloadphp-git-3d45dd58b87b847271bdf483f7ead1db5465f86d.tar.gz
Fixed a bug in preg_split.
Fixed a bug in array_shift/array_pop.
-rw-r--r--ext/pcre/pcre.c6
-rw-r--r--ext/standard/basic_functions.c6
2 files changed, 8 insertions, 4 deletions
diff --git a/ext/pcre/pcre.c b/ext/pcre/pcre.c
index eb91b954a1..39662be2ec 100644
--- a/ext/pcre/pcre.c
+++ b/ext/pcre/pcre.c
@@ -829,9 +829,9 @@ PHP_FUNCTION(preg_split)
limit_val--;
}
else { /* if no match */
- /* Add the last piece to the return value, if there
- were matches before */
- if (piece > subject->value.str.val)
+ /* Add the last piece to the return value, if there is
+ something left */
+ if (limit != 0)
add_next_index_stringl(return_value,
piece,
subject_end-piece, 1);
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index e37fcbc741..43bc22b0c3 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -2583,7 +2583,11 @@ static void _phpi_pop(INTERNAL_FUNCTION_PARAMETERS, int off_the_end)
zend_error(E_WARNING, "The argument needs to be an array");
return;
}
-
+
+ if (zend_hash_num_elements(stack->value.ht) == 0) {
+ return;
+ }
+
/* Get the first or last value and copy it into the return value */
if (off_the_end)
zend_hash_internal_pointer_end(stack->value.ht);