@@ -294,7 +294,8 @@ static void php_converter_from_u_callback(const void *context,
294294 zval zargs [4 ];
295295
296296 ZVAL_LONG (& zargs [0 ], reason );
297- array_init (& zargs [1 ]);
297+ array_init_size (& zargs [1 ], length );
298+ zend_hash_real_init_packed (Z_ARRVAL (zargs [1 ]));
298299 int i = 0 ;
299300 while (i < length ) {
300301 UChar32 c ;
@@ -807,7 +808,8 @@ PHP_METHOD(UConverter, getAvailable) {
807808
808809 intl_error_reset (NULL );
809810
810- array_init (return_value );
811+ array_init_size (return_value , count );
812+ zend_hash_real_init_packed (Z_ARRVAL_P (return_value ));
811813 for (i = 0 ; i < count ; i ++ ) {
812814 const char * name = ucnv_getAvailableName (i );
813815 add_next_index_string (return_value , name );
@@ -833,7 +835,8 @@ PHP_METHOD(UConverter, getAliases) {
833835 RETURN_FALSE ;
834836 }
835837
836- array_init (return_value );
838+ array_init_size (return_value , count );
839+ zend_hash_real_init_packed (Z_ARRVAL_P (return_value ));
837840 for (i = 0 ; i < count ; i ++ ) {
838841 const char * alias ;
839842
@@ -856,8 +859,9 @@ PHP_METHOD(UConverter, getStandards) {
856859 ZEND_PARSE_PARAMETERS_NONE ();
857860 intl_error_reset (NULL );
858861
859- array_init (return_value );
860862 count = ucnv_countStandards ();
863+ array_init_size (return_value , count );
864+ zend_hash_real_init_packed (Z_ARRVAL_P (return_value ));
861865 for (i = 0 ; i < count ; i ++ ) {
862866 UErrorCode error = U_ZERO_ERROR ;
863867 const char * name = ucnv_getStandard (i , & error );
0 commit comments