RETVAL_BINARYL(string_key, string_length - 1, 1);
break;
case HASH_KEY_IS_UNICODE:
- RETVAL_UNICODEL(string_key, string_length - 1, 1);
+ RETVAL_UNICODEL((UChar*)string_key, string_length - 1, 1);
break;
case HASH_KEY_IS_LONG:
RETVAL_LONG(num_key);
ZVAL_BINARYL(key, string_key, string_key_len-1, 1);
break;
case HASH_KEY_IS_UNICODE:
- ZVAL_UNICODEL(key, string_key, string_key_len-1, 1);
+ ZVAL_UNICODEL(key, (UChar*)string_key, string_key_len-1, 1);
break;
}
RETURN_BINARYL(string_key, str_key_len-1, 1);
break;
case HASH_KEY_IS_UNICODE:
- RETURN_UNICODEL(string_key, str_key_len-1, 1);
+ RETURN_UNICODEL((UChar*)string_key, str_key_len-1, 1);
break;
case HASH_KEY_IS_LONG:
RETURN_LONG(num_key);
ZVAL_BINARYL(new_val, string_key, string_key_len-1, 0);
goto ukey;
case HASH_KEY_IS_UNICODE:
- ZVAL_UNICODEL(new_val, string_key, string_key_len-1, 0);
+ ZVAL_UNICODEL(new_val, (UChar*)string_key, string_key_len-1, 0);
ukey:
zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &new_val,
sizeof(zval *), NULL);
Z_TYPE_PP(entry) == IS_UNICODE) {
/* make sure our array does not end up with numeric string keys */
if ((Z_TYPE_PP(entry) == IS_STRING && is_numeric_string(Z_STRVAL_PP(entry), Z_STRLEN_PP(entry), NULL, NULL, 0) == IS_LONG) ||
- (Z_TYPE_PP(entry) == IS_UNICODE && is_numeric_unicode(Z_STRVAL_PP(entry), Z_STRLEN_PP(entry), NULL, NULL, 0) == IS_LONG)) {
+ (Z_TYPE_PP(entry) == IS_UNICODE && is_numeric_unicode(Z_USTRVAL_PP(entry), Z_USTRLEN_PP(entry), NULL, NULL, 0) == IS_LONG)) {
zval tmp_entry;
tmp_entry = **entry;
ZVAL_BINARYL(data, string_key, str_key_len-1, 0);
break;
case HASH_KEY_IS_UNICODE:
- ZVAL_UNICODEL(data, string_key, str_key_len-1, 0);
+ ZVAL_UNICODEL(data, (UChar *)string_key, str_key_len-1, 0);
break;
case HASH_KEY_IS_LONG:
Z_TYPE_P(data) = IS_LONG;
zend_hash_index_update(Z_ARRVAL_P(return_value), num_key, entry, sizeof(entry), NULL);
break;
case HASH_KEY_IS_STRING:
- new_key=estrndup(string_key,str_key_len - 1);
+ new_key = estrndup(string_key,str_key_len - 1);
if (change_to_upper)
php_strtoupper(new_key, str_key_len - 1);
else
efree(new_key);
break;
case HASH_KEY_IS_UNICODE:
- new_key=eustrndup(string_key,str_key_len - 1);
- str_key_len--;
- if (change_to_upper)
- new_key = php_u_strtoupper(&new_key, &str_key_len, UG(default_locale));
- else
- new_key = php_u_strtolower(&new_key, &str_key_len, UG(default_locale));
- str_key_len++;
- zend_u_hash_update(Z_ARRVAL_P(return_value), IS_UNICODE, new_key, str_key_len, entry, sizeof(entry), NULL);
- efree(new_key);
+ {
+ UChar *new_key_u;
+
+ new_key_u = eustrndup((UChar *)string_key,str_key_len - 1);
+ str_key_len--;
+ if (change_to_upper)
+ new_key_u = php_u_strtoupper(&new_key_u, &str_key_len, UG(default_locale));
+ else
+ new_key_u = php_u_strtolower(&new_key_u, &str_key_len, UG(default_locale));
+ str_key_len++;
+ zend_u_hash_update(Z_ARRVAL_P(return_value), IS_UNICODE, new_key_u, str_key_len, entry, sizeof(entry), NULL);
+ efree(new_key_u);
+ }
break;
}
} else if (key_type == HASH_KEY_IS_BINARY) {
RETURN_BINARYL(string_key, string_key_len-1, 1);
} else if (key_type == HASH_KEY_IS_UNICODE) {
- RETURN_UNICODEL(string_key, string_key_len-1, 1);
+ RETURN_UNICODEL((UChar *)string_key, string_key_len-1, 1);
} else {
RETURN_LONG(num_key);
}
else if (key_type == HASH_KEY_IS_BINARY)
add_next_index_binaryl(return_value, string_key, string_key_len-1, 1);
else if (key_type == HASH_KEY_IS_UNICODE)
- add_next_index_unicodel(return_value, string_key, string_key_len-1, 1);
+ add_next_index_unicodel(return_value, (UChar *)string_key, string_key_len-1, 1);
else
add_next_index_long(return_value, num_key);
}