Skip to content

Commit a01b6e5

Browse files
committed
Return empty array instead of null from enchant APIs
Closes GH-5566.
1 parent f91283f commit a01b6e5

File tree

4 files changed

+12
-15
lines changed

4 files changed

+12
-15
lines changed

UPGRADING

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,10 @@ PHP 8.0 UPGRADE NOTES
221221
* DOMUserDataHandler
222222
* DOMTypeInfo
223223

224+
- Enchant:
225+
. enchant_broker_list_dicts(), enchant_broker_describe() and
226+
enchant_dict_suggest() will now return an empty array instead of null.
227+
224228
- Exif:
225229
. Removed read_exif_data(). exif_read_data() should be used instead.
226230

ext/enchant/enchant.c

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,6 @@ enumerate_providers_fn (const char * const name,
9292
add_assoc_string(&tmp_array, "name", (char *)name);
9393
add_assoc_string(&tmp_array, "desc", (char *)desc);
9494
add_assoc_string(&tmp_array, "file", (char *)file);
95-
96-
if (Z_TYPE_P(zdesc)!=IS_ARRAY) {
97-
array_init(zdesc);
98-
}
99-
10095
add_next_index_zval(zdesc, &tmp_array);
10196
}
10297
/* }}} */
@@ -129,10 +124,6 @@ static void php_enchant_list_dicts_fn( const char * const lang_tag,
129124
add_assoc_string(&tmp_array, "provider_name", (char *)provider_name);
130125
add_assoc_string(&tmp_array, "provider_desc", (char *)provider_desc);
131126
add_assoc_string(&tmp_array, "provider_file", (char *)provider_file);
132-
133-
if (Z_TYPE_P(zdesc) != IS_ARRAY) {
134-
array_init(zdesc);
135-
}
136127
add_next_index_zval(zdesc, &tmp_array);
137128

138129
}
@@ -434,6 +425,7 @@ PHP_FUNCTION(enchant_broker_list_dicts)
434425

435426
PHP_ENCHANT_GET_BROKER;
436427

428+
array_init(return_value);
437429
enchant_broker_list_dicts(pbroker->pbroker, php_enchant_list_dicts_fn, (void *)return_value);
438430
}
439431
/* }}} */
@@ -612,6 +604,7 @@ PHP_FUNCTION(enchant_broker_describe)
612604

613605
PHP_ENCHANT_GET_BROKER;
614606

607+
array_init(return_value);
615608
enchant_broker_describe(pbroker->pbroker, describetozval, (void *)return_value);
616609
}
617610
/* }}} */
@@ -698,12 +691,12 @@ PHP_FUNCTION(enchant_dict_suggest)
698691
}
699692

700693
PHP_ENCHANT_GET_DICT;
694+
array_init(return_value);
701695

702696
suggs = enchant_dict_suggest(pdict->pdict, word, wordlen, &n_sugg);
703697
if (suggs && n_sugg) {
704698
size_t i;
705699

706-
array_init(return_value);
707700
for (i = 0; i < n_sugg; i++) {
708701
add_next_index_string(return_value, suggs[i]);
709702
}

ext/enchant/enchant.stub.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ function enchant_broker_set_dict_path($broker, int $name, string $value): bool {
2727
function enchant_broker_get_dict_path($broker, int $name): string|false {}
2828

2929
/** @param resource $broker */
30-
function enchant_broker_list_dicts($broker): ?array {}
30+
function enchant_broker_list_dicts($broker): array {}
3131

3232
/**
3333
* @param resource $broker
@@ -51,7 +51,7 @@ function enchant_broker_dict_exists($broker, string $tag): bool {}
5151
function enchant_broker_set_ordering($broker, string $tag, string $ordering): bool {}
5252

5353
/** @param resource $broker */
54-
function enchant_broker_describe($broker): ?array {}
54+
function enchant_broker_describe($broker): array {}
5555

5656
/** @param resource $dict */
5757
function enchant_dict_quick_check($dict, string $word, &$suggestions = null): bool {}
@@ -60,7 +60,7 @@ function enchant_dict_quick_check($dict, string $word, &$suggestions = null): bo
6060
function enchant_dict_check($dict, string $word): bool {}
6161

6262
/** @param resource $dict */
63-
function enchant_dict_suggest($dict, string $word): ?array {}
63+
function enchant_dict_suggest($dict, string $word): array {}
6464

6565
/** @param resource $dict */
6666
function enchant_dict_add($dict, string $word): void {}

ext/enchant/enchant_arginfo.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_enchant_broker_get_dict_path, 0,
2222
ZEND_ARG_TYPE_INFO(0, name, IS_LONG, 0)
2323
ZEND_END_ARG_INFO()
2424

25-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_broker_list_dicts, 0, 1, IS_ARRAY, 1)
25+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_broker_list_dicts, 0, 1, IS_ARRAY, 0)
2626
ZEND_ARG_INFO(0, broker)
2727
ZEND_END_ARG_INFO()
2828

@@ -64,7 +64,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_check, 0, 2, _IS_BO
6464
ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0)
6565
ZEND_END_ARG_INFO()
6666

67-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_suggest, 0, 2, IS_ARRAY, 1)
67+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_enchant_dict_suggest, 0, 2, IS_ARRAY, 0)
6868
ZEND_ARG_INFO(0, dict)
6969
ZEND_ARG_TYPE_INFO(0, word, IS_STRING, 0)
7070
ZEND_END_ARG_INFO()

0 commit comments

Comments
 (0)