]> granicus.if.org Git - php/commitdiff
Return null on zpp failure in Array::exchangeArray()
authorNikita Popov <nikic@php.net>
Wed, 15 Apr 2015 18:43:41 +0000 (20:43 +0200)
committerNikita Popov <nikic@php.net>
Wed, 15 Apr 2015 18:43:41 +0000 (20:43 +0200)
Method was still returning a value despite zpp failing previously...

ext/spl/spl_array.c
ext/spl/tests/arrayObject_exchangeArray_basic3.phpt

index cee380709aedceab7f9ac7e7c2a62510a61602ce..76392381ef4bb1e0a0710740e46bf8fcb10b5f94 100644 (file)
@@ -1256,11 +1256,11 @@ SPL_METHOD(Array, exchangeArray)
        zval *object = getThis(), *array;
        spl_array_object *intern = Z_SPLARRAY_P(object);
 
-       RETVAL_ARR(zend_array_dup(spl_array_get_hash_table(intern, 0)));
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &array) == FAILURE) {
                return;
        }
 
+       RETVAL_ARR(zend_array_dup(spl_array_get_hash_table(intern, 0)));
        spl_array_set_array(object, intern, array, 0L, 1);
 }
 /* }}} */
index 4045b7a946d556f0b9567e42677ad279b9497a71..ed2b8e89e1a5ae6dc2e29949dc08897dbe2c5f82 100644 (file)
@@ -98,9 +98,7 @@ object(C)#3 (2) {
   ["addedToOriginal"]=>
   string(17) "added To Original"
 }
-array(2) {
-  ["pub1"]=>
-  string(7) "public1"
+array(1) {
   ["addedToCopy"]=>
   string(13) "added To Copy"
 }