diff --git a/ext/intl/collator/collator_sort.c b/ext/intl/collator/collator_sort.c index c28ffb82cf737..75466aacb07af 100644 --- a/ext/intl/collator/collator_sort.c +++ b/ext/intl/collator/collator_sort.c @@ -469,7 +469,8 @@ PHP_FUNCTION( collator_sort_with_sort_keys ) ZVAL_COPY_VALUE(&garbage, array); /* for resulting hash we'll assign new hash keys rather then reordering */ - array_init(array); + array_init_size(array, sortKeyCount); + zend_hash_real_init_packed(Z_ARRVAL_P(array)); for( j = 0; j < sortKeyCount; j++ ) { diff --git a/ext/intl/converter/converter.c b/ext/intl/converter/converter.c index 73a7cb573134a..3aa7a53aa485b 100644 --- a/ext/intl/converter/converter.c +++ b/ext/intl/converter/converter.c @@ -294,7 +294,8 @@ static void php_converter_from_u_callback(const void *context, zval zargs[4]; ZVAL_LONG(&zargs[0], reason); - array_init(&zargs[1]); + array_init_size(&zargs[1], length); + zend_hash_real_init_packed(Z_ARRVAL(zargs[1])); int i = 0; while (i < length) { UChar32 c; @@ -807,7 +808,8 @@ PHP_METHOD(UConverter, getAvailable) { intl_error_reset(NULL); - array_init(return_value); + array_init_size(return_value, count); + zend_hash_real_init_packed(Z_ARRVAL_P(return_value)); for(i = 0; i < count; i++) { const char *name = ucnv_getAvailableName(i); add_next_index_string(return_value, name); @@ -833,7 +835,8 @@ PHP_METHOD(UConverter, getAliases) { RETURN_FALSE; } - array_init(return_value); + array_init_size(return_value, count); + zend_hash_real_init_packed(Z_ARRVAL_P(return_value)); for(i = 0; i < count; i++) { const char *alias; @@ -856,8 +859,9 @@ PHP_METHOD(UConverter, getStandards) { ZEND_PARSE_PARAMETERS_NONE(); intl_error_reset(NULL); - array_init(return_value); count = ucnv_countStandards(); + array_init_size(return_value, count); + zend_hash_real_init_packed(Z_ARRVAL_P(return_value)); for(i = 0; i < count; i++) { UErrorCode error = U_ZERO_ERROR; const char *name = ucnv_getStandard(i, &error); diff --git a/ext/intl/msgformat/msgformat_parse.c b/ext/intl/msgformat/msgformat_parse.c index c55671cf856a6..80ede995c42e7 100644 --- a/ext/intl/msgformat/msgformat_parse.c +++ b/ext/intl/msgformat/msgformat_parse.c @@ -42,7 +42,8 @@ static void msgfmt_do_parse(MessageFormatter_object *mfo, char *source, size_t s } INTL_METHOD_CHECK_STATUS(mfo, "Parsing failed"); - array_init(return_value); + array_init_size(return_value, count); + zend_hash_real_init_packed(Z_ARRVAL_P(return_value)); for(i=0;ichild, &ilen, &INTL_DATA_ERROR_CODE(source) ); INTL_METHOD_CHECK_STATUS(source, "Failed to retrieve vector value"); - array_init( return_value ); + array_init_size( return_value, ilen ); + zend_hash_real_init_packed(Z_ARRVAL_P(return_value)); for (i=0; i