zkeyval = zend_hash_index_find(ht, Z_LVAL_P(zkey));
}
- Z_ADDREF_P(zcolval);
if (zkeyval && Z_TYPE_P(zkeyval) == IS_STRING) {
-//???
+ Z_ADDREF_P(zcolval);
add_assoc_zval(return_value, Z_STRVAL_P(zkeyval), zcolval);
} else if (zkeyval && Z_TYPE_P(zkeyval) == IS_LONG) {
add_index_zval(return_value, Z_LVAL_P(zkeyval), zcolval);
} else if (zkeyval && Z_TYPE_P(zkeyval) == IS_OBJECT) {
+ Z_ADDREF_P(zcolval);
SEPARATE_ZVAL(zkeyval);
convert_to_string(zkeyval);
-//???
add_assoc_zval(return_value, Z_STRVAL_P(zkeyval), zcolval);
} else {
+ if (Z_REFCOUNTED_P(zcolval)) {
+ Z_ADDREF_P(zcolval);
+ }
add_next_index_zval(return_value, zcolval);
}
}
php_strtolower(new_key->val, new_key->len);
}
zend_hash_update(Z_ARRVAL_P(return_value), new_key, entry);
- STR_FREE(new_key);
+ STR_RELEASE(new_key);
break;
}
}
}
if (ok) {
- Z_ADDREF(p->val);
+ if (Z_REFCOUNTED(p->val)) {
+ Z_ADDREF(p->val);
+ }
zend_hash_index_update(Z_ARRVAL_P(return_value), p->h, &p->val);
}
} else {
}
}
if (ok) {
- Z_ADDREF(p->val);
+ if (Z_REFCOUNTED(p->val)) {
+ Z_ADDREF(p->val);
+ }
zend_hash_update(Z_ARRVAL_P(return_value), p->key, &p->val);
}
}
}
}
if (ok) {
- Z_ADDREF(p->val);
+ if (Z_REFCOUNTED(p->val)) {
+ Z_ADDREF(p->val);
+ }
zend_hash_index_update(Z_ARRVAL_P(return_value), p->h, &p->val);
}
} else {
}
}
if (ok) {
- Z_ADDREF(p->val);
+ if (Z_REFCOUNTED(p->val)) {
+ Z_ADDREF(p->val);
+ }
zend_hash_update(Z_ARRVAL_P(return_value), p->key, &p->val);
}
}