summaryrefslogtreecommitdiff
path: root/ext/spl/spl_functions.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/spl_functions.c')
-rw-r--r--ext/spl/spl_functions.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/ext/spl/spl_functions.c b/ext/spl/spl_functions.c
index f1e59c0234..97a9509caa 100644
--- a/ext/spl/spl_functions.c
+++ b/ext/spl/spl_functions.c
@@ -58,7 +58,7 @@ PHPAPI void spl_register_sub_class(zend_class_entry ** ppce, zend_class_entry *
zend_class_entry ce;
INIT_CLASS_ENTRY_EX(ce, class_name, strlen(class_name), function_list);
- *ppce = zend_register_internal_class_ex(&ce, parent_ce, NULL TSRMLS_CC);
+ *ppce = zend_register_internal_class_ex(&ce, parent_ce TSRMLS_CC);
/* entries changed by initialize */
if (obj_ctor) {
@@ -77,16 +77,16 @@ void spl_register_property( zend_class_entry * class_entry, char *prop_name, int
/* }}} */
/* {{{ spl_add_class_name */
-void spl_add_class_name(zval *list, zend_class_entry * pce, int allow, int ce_flags TSRMLS_DC)
+void spl_add_class_name(zval *list, zend_class_entry *pce, int allow, int ce_flags TSRMLS_DC)
{
if (!allow || (allow > 0 && pce->ce_flags & ce_flags) || (allow < 0 && !(pce->ce_flags & ce_flags))) {
- size_t len = pce->name_length;
zval *tmp;
- if (zend_hash_find(Z_ARRVAL_P(list), pce->name, len+1, (void*)&tmp) == FAILURE) {
- MAKE_STD_ZVAL(tmp);
- ZVAL_STRINGL(tmp, pce->name, pce->name_length, 1);
- zend_hash_add(Z_ARRVAL_P(list), pce->name, len+1, &tmp, sizeof(zval *), NULL);
+ if ((tmp = zend_hash_find(Z_ARRVAL_P(list), pce->name)) == NULL) {
+ zval t;
+ STR_ADDREF(pce->name);
+ ZVAL_STR(&t, pce->name);
+ zend_hash_add(Z_ARRVAL_P(list), pce->name, &t);
}
}
}
@@ -133,13 +133,9 @@ int spl_add_classes(zend_class_entry *pce, zval *list, int sub, int allow, int c
}
/* }}} */
-char * spl_gen_private_prop_name(zend_class_entry *ce, char *prop_name, int prop_len, int *name_len TSRMLS_DC) /* {{{ */
+zend_string * spl_gen_private_prop_name(zend_class_entry *ce, char *prop_name, int prop_len TSRMLS_DC) /* {{{ */
{
- char *rv;
-
- zend_mangle_property_name(&rv, name_len, ce->name, ce->name_length, prop_name, prop_len, 0);
-
- return rv;
+ return zend_mangle_property_name(ce->name->val, ce->name->len, prop_name, prop_len, 0);
}
/* }}} */