diff options
Diffstat (limited to 'ext/spl')
| -rw-r--r-- | ext/spl/spl_array.c | 12 | ||||
| -rw-r--r-- | ext/spl/spl_dllist.c | 8 | ||||
| -rw-r--r-- | ext/spl/spl_iterators.c | 22 | ||||
| -rw-r--r-- | ext/spl/spl_observer.c | 7 |
4 files changed, 21 insertions, 28 deletions
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c index ec28e2e4fd..e272a145e5 100644 --- a/ext/spl/spl_array.c +++ b/ext/spl/spl_array.c @@ -717,7 +717,7 @@ void spl_array_iterator_append(zval *object, zval *append_value TSRMLS_DC) /* {{ } if (Z_TYPE(intern->array) == IS_OBJECT) { - php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Cannot append properties to objects, use %s::offsetSet() instead", Z_OBJCE_P(object)->name); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Cannot append properties to objects, use %s::offsetSet() instead", Z_OBJCE_P(object)->name->val); return; } @@ -759,11 +759,11 @@ SPL_METHOD(Array, offsetUnset) Return a copy of the contained array */ SPL_METHOD(Array, getArrayCopy) { - zval *object = getThis(), *tmp; + zval *object = getThis(); spl_array_object *intern = (spl_array_object*)Z_OBJ_P(object); array_init(return_value); - zend_hash_copy(HASH_OF(return_value), spl_array_get_hash_table(intern, 0 TSRMLS_CC), (copy_ctor_func_t) zval_add_ref); + zend_hash_copy(Z_ARRVAL_P(return_value), spl_array_get_hash_table(intern, 0 TSRMLS_CC), (copy_ctor_func_t) zval_add_ref); } /* }}} */ static HashTable *spl_array_get_properties(zval *object TSRMLS_DC) /* {{{ */ @@ -1683,10 +1683,8 @@ SPL_METHOD(Array, serialize) /* done */ PHP_VAR_SERIALIZE_DESTROY(var_hash); - if (buf.c) { - RETVAL_STRINGL(buf.c, buf.len); - smart_str_free(&buf); - return; + if (buf.s) { + RETVAL_STR(buf.s); } zval_ptr_dtor(&members); diff --git a/ext/spl/spl_dllist.c b/ext/spl/spl_dllist.c index 35fa40a7c1..fbe249456e 100644 --- a/ext/spl/spl_dllist.c +++ b/ext/spl/spl_dllist.c @@ -317,7 +317,7 @@ static void spl_ptr_llist_shift(spl_ptr_llist *llist, zval *ret TSRMLS_DC) /* {{ static void spl_ptr_llist_copy(spl_ptr_llist *from, spl_ptr_llist *to TSRMLS_DC) /* {{{ */ { - spl_ptr_llist_element *current = from->head, *next; + spl_ptr_llist_element *current = from->head, *next; spl_ptr_llist_ctor_func ctor = from->ctor; while (current) { @@ -1145,10 +1145,8 @@ SPL_METHOD(SplDoublyLinkedList, serialize) /* done */ PHP_VAR_SERIALIZE_DESTROY(var_hash); - if (buf.c) { - RETVAL_STRINGL(buf.c, buf.len); - smart_str_free(&buf); - return; + if (buf.s) { + RETURN_STR(buf.s); } else { RETURN_NULL(); } diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index 719344ad06..81d1ecc4bc 100644 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -972,15 +972,15 @@ static void spl_recursive_tree_iterator_get_prefix(spl_recursive_it_object *obje zval has_next; int level; - smart_str_appendl(&str, object->prefix[0].c, object->prefix[0].len); + smart_str_appendl(&str, object->prefix[0].s->val, object->prefix[0].s->len); for (level = 0; level < object->level; ++level) { zend_call_method_with_0_params(&object->iterators[level].zobject, object->iterators[level].ce, NULL, "hasnext", &has_next); if (Z_TYPE(has_next) != IS_UNDEF) { if (Z_LVAL(has_next)) { - smart_str_appendl(&str, object->prefix[1].c, object->prefix[1].len); + smart_str_appendl(&str, object->prefix[1].s->val, object->prefix[1].s->len); } else { - smart_str_appendl(&str, object->prefix[2].c, object->prefix[2].len); + smart_str_appendl(&str, object->prefix[2].s->val, object->prefix[2].s->len); } zval_ptr_dtor(&has_next); } @@ -988,21 +988,20 @@ static void spl_recursive_tree_iterator_get_prefix(spl_recursive_it_object *obje zend_call_method_with_0_params(&object->iterators[level].zobject, object->iterators[level].ce, NULL, "hasnext", &has_next); if (Z_TYPE(has_next) != IS_UNDEF) { if (Z_LVAL(has_next)) { - smart_str_appendl(&str, object->prefix[3].c, object->prefix[3].len); + smart_str_appendl(&str, object->prefix[3].s->val, object->prefix[3].s->len); } else { - smart_str_appendl(&str, object->prefix[4].c, object->prefix[4].len); + smart_str_appendl(&str, object->prefix[4].s->val, object->prefix[4].s->len); } zval_ptr_dtor(&has_next); } - smart_str_appendl(&str, object->prefix[5].c, object->prefix[5].len); + smart_str_appendl(&str, object->prefix[5].s->val, object->prefix[5].s->len); smart_str_0(&str); - RETVAL_STRINGL(str.c, str.len); - smart_str_free(&str); + RETURN_STR(str.s); } -static void spl_recursive_tree_iterator_get_entry(spl_recursive_it_object * object, zval * return_value TSRMLS_DC) +static void spl_recursive_tree_iterator_get_entry(spl_recursive_it_object *object, zval *return_value TSRMLS_DC) { zend_object_iterator *iterator = object->iterators[object->level].iterator; zval *data; @@ -1023,9 +1022,10 @@ static void spl_recursive_tree_iterator_get_entry(spl_recursive_it_object * obje zend_restore_error_handling(&error_handling TSRMLS_CC); } -static void spl_recursive_tree_iterator_get_postfix(spl_recursive_it_object * object, zval * return_value TSRMLS_DC) +static void spl_recursive_tree_iterator_get_postfix(spl_recursive_it_object *object, zval *return_value TSRMLS_DC) { - RETVAL_STRINGL(object->postfix[0].c, object->postfix[0].len); + RETVAL_STR(object->postfix[0].s); + Z_ADDREF_P(return_value); } /* {{{ proto void RecursiveTreeIterator::__construct(RecursiveIterator|IteratorAggregate it [, int flags = RTIT_BYPASS_KEY [, int cit_flags = CIT_CATCH_GET_CHILD [, mode = RIT_SELF_FIRST ]]]) throws InvalidArgumentException diff --git a/ext/spl/spl_observer.c b/ext/spl/spl_observer.c index c91379bf20..411fed6812 100644 --- a/ext/spl/spl_observer.c +++ b/ext/spl/spl_observer.c @@ -284,7 +284,6 @@ static zend_object *spl_object_storage_clone(zval *zobject TSRMLS_DC) { zend_object *old_object; zend_object *new_object; - spl_SplObjectStorage *intern; old_object = Z_OBJ_P(zobject); new_object = spl_object_storage_new_ex(old_object->ce, zobject TSRMLS_CC); @@ -763,10 +762,8 @@ SPL_METHOD(SplObjectStorage, serialize) /* done */ PHP_VAR_SERIALIZE_DESTROY(var_hash); - if (buf.c) { - RETVAL_STRINGL(buf.c, buf.len); - smart_str_free(&buf); - return; + if (buf.s) { + RETURN_STR(buf.s); } else { RETURN_NULL(); } |
