summaryrefslogtreecommitdiff
path: root/ext/standard/array.c
diff options
context:
space:
mode:
authorBen Ramsey <ramsey@php.net>2012-04-14 02:39:25 -0500
committerBen Ramsey <ramsey@php.net>2013-01-11 14:16:19 -0600
commit6a27b890e6d643f17072e561a5d4f87211195a7c (patch)
tree65b8cd2a57da0295ec2c19a29b156f5594d53c3d /ext/standard/array.c
parentdc4dfe8ae019ec1fddc05ac340ed612a9c3f6d34 (diff)
downloadphp-git-6a27b890e6d643f17072e561a5d4f87211195a7c.tar.gz
Simplify the code and use zend_hash_next_index_insert()
Diffstat (limited to 'ext/standard/array.c')
-rw-r--r--ext/standard/array.c27
1 files changed, 2 insertions, 25 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index b707301bd8..c5d0fa7747 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -2613,31 +2613,8 @@ PHP_FUNCTION(array_column)
continue;
}
- switch (Z_TYPE_PP(zvalue)) {
- case IS_NULL:
- add_next_index_null(return_value);
- break;
- case IS_LONG:
- add_next_index_long(return_value, Z_LVAL_PP(zvalue));
- break;
- case IS_DOUBLE:
- add_next_index_double(return_value, Z_DVAL_PP(zvalue));
- break;
- case IS_BOOL:
- add_next_index_bool(return_value, Z_BVAL_PP(zvalue));
- break;
- case IS_OBJECT:
- zval_add_ref(zvalue);
- add_next_index_zval(return_value, *zvalue);
- break;
- case IS_STRING:
- add_next_index_stringl(return_value, Z_STRVAL_PP(zvalue), Z_STRLEN_PP(zvalue), 1);
- break;
- case IS_RESOURCE:
- zval_add_ref(zvalue);
- add_next_index_resource(return_value, Z_RESVAL_PP(zvalue));
- break;
- }
+ Z_ADDREF_PP(zvalue);
+ zend_hash_next_index_insert(HASH_OF(return_value), (void **)zvalue, sizeof(zval *), NULL);
}
}