Skip to content

Commit bc4c012

Browse files
authored
Declare ext/standard constants in stubs - part 1 (#9404)
1 parent 10a27bc commit bc4c012

File tree

5 files changed

+179
-64
lines changed

5 files changed

+179
-64
lines changed

ext/spl/spl_observer.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -645,13 +645,13 @@ PHP_METHOD(SplObjectStorage, contains)
645645
PHP_METHOD(SplObjectStorage, count)
646646
{
647647
spl_SplObjectStorage *intern = Z_SPLOBJSTORAGE_P(ZEND_THIS);
648-
zend_long mode = COUNT_NORMAL;
648+
zend_long mode = PHP_COUNT_NORMAL;
649649

650650
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &mode) == FAILURE) {
651651
RETURN_THROWS();
652652
}
653653

654-
if (mode == COUNT_RECURSIVE) {
654+
if (mode == PHP_COUNT_RECURSIVE) {
655655
RETURN_LONG(php_count_recursive(&intern->storage));
656656
}
657657

ext/standard/array.c

Lines changed: 19 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,6 @@
4444
#include "ext/random/php_random.h"
4545

4646
/* {{{ defines */
47-
#define EXTR_OVERWRITE 0
48-
#define EXTR_SKIP 1
49-
#define EXTR_PREFIX_SAME 2
50-
#define EXTR_PREFIX_ALL 3
51-
#define EXTR_PREFIX_INVALID 4
52-
#define EXTR_PREFIX_IF_EXISTS 5
53-
#define EXTR_IF_EXISTS 6
54-
55-
#define EXTR_REFS 0x100
56-
57-
#define CASE_LOWER 0
58-
#define CASE_UPPER 1
5947

6048
#define DIFF_NORMAL 1
6149
#define DIFF_KEY 2
@@ -89,34 +77,6 @@ PHP_MINIT_FUNCTION(array) /* {{{ */
8977
{
9078
ZEND_INIT_MODULE_GLOBALS(array, php_array_init_globals, NULL);
9179

92-
REGISTER_LONG_CONSTANT("EXTR_OVERWRITE", EXTR_OVERWRITE, CONST_CS | CONST_PERSISTENT);
93-
REGISTER_LONG_CONSTANT("EXTR_SKIP", EXTR_SKIP, CONST_CS | CONST_PERSISTENT);
94-
REGISTER_LONG_CONSTANT("EXTR_PREFIX_SAME", EXTR_PREFIX_SAME, CONST_CS | CONST_PERSISTENT);
95-
REGISTER_LONG_CONSTANT("EXTR_PREFIX_ALL", EXTR_PREFIX_ALL, CONST_CS | CONST_PERSISTENT);
96-
REGISTER_LONG_CONSTANT("EXTR_PREFIX_INVALID", EXTR_PREFIX_INVALID, CONST_CS | CONST_PERSISTENT);
97-
REGISTER_LONG_CONSTANT("EXTR_PREFIX_IF_EXISTS", EXTR_PREFIX_IF_EXISTS, CONST_CS | CONST_PERSISTENT);
98-
REGISTER_LONG_CONSTANT("EXTR_IF_EXISTS", EXTR_IF_EXISTS, CONST_CS | CONST_PERSISTENT);
99-
REGISTER_LONG_CONSTANT("EXTR_REFS", EXTR_REFS, CONST_CS | CONST_PERSISTENT);
100-
101-
REGISTER_LONG_CONSTANT("SORT_ASC", PHP_SORT_ASC, CONST_CS | CONST_PERSISTENT);
102-
REGISTER_LONG_CONSTANT("SORT_DESC", PHP_SORT_DESC, CONST_CS | CONST_PERSISTENT);
103-
104-
REGISTER_LONG_CONSTANT("SORT_REGULAR", PHP_SORT_REGULAR, CONST_CS | CONST_PERSISTENT);
105-
REGISTER_LONG_CONSTANT("SORT_NUMERIC", PHP_SORT_NUMERIC, CONST_CS | CONST_PERSISTENT);
106-
REGISTER_LONG_CONSTANT("SORT_STRING", PHP_SORT_STRING, CONST_CS | CONST_PERSISTENT);
107-
REGISTER_LONG_CONSTANT("SORT_LOCALE_STRING", PHP_SORT_LOCALE_STRING, CONST_CS | CONST_PERSISTENT);
108-
REGISTER_LONG_CONSTANT("SORT_NATURAL", PHP_SORT_NATURAL, CONST_CS | CONST_PERSISTENT);
109-
REGISTER_LONG_CONSTANT("SORT_FLAG_CASE", PHP_SORT_FLAG_CASE, CONST_CS | CONST_PERSISTENT);
110-
111-
REGISTER_LONG_CONSTANT("CASE_LOWER", CASE_LOWER, CONST_CS | CONST_PERSISTENT);
112-
REGISTER_LONG_CONSTANT("CASE_UPPER", CASE_UPPER, CONST_CS | CONST_PERSISTENT);
113-
114-
REGISTER_LONG_CONSTANT("COUNT_NORMAL", COUNT_NORMAL, CONST_CS | CONST_PERSISTENT);
115-
REGISTER_LONG_CONSTANT("COUNT_RECURSIVE", COUNT_RECURSIVE, CONST_CS | CONST_PERSISTENT);
116-
117-
REGISTER_LONG_CONSTANT("ARRAY_FILTER_USE_BOTH", ARRAY_FILTER_USE_BOTH, CONST_CS | CONST_PERSISTENT);
118-
REGISTER_LONG_CONSTANT("ARRAY_FILTER_USE_KEY", ARRAY_FILTER_USE_KEY, CONST_CS | CONST_PERSISTENT);
119-
12080
return SUCCESS;
12181
}
12282
/* }}} */
@@ -661,7 +621,7 @@ PHPAPI zend_long php_count_recursive(HashTable *ht) /* {{{ */
661621
PHP_FUNCTION(count)
662622
{
663623
zval *array;
664-
zend_long mode = COUNT_NORMAL;
624+
zend_long mode = PHP_COUNT_NORMAL;
665625
zend_long cnt;
666626

667627
ZEND_PARSE_PARAMETERS_START(1, 2)
@@ -670,14 +630,14 @@ PHP_FUNCTION(count)
670630
Z_PARAM_LONG(mode)
671631
ZEND_PARSE_PARAMETERS_END();
672632

673-
if (mode != COUNT_NORMAL && mode != COUNT_RECURSIVE) {
633+
if (mode != PHP_COUNT_NORMAL && mode != PHP_COUNT_RECURSIVE) {
674634
zend_argument_value_error(2, "must be either COUNT_NORMAL or COUNT_RECURSIVE");
675635
RETURN_THROWS();
676636
}
677637

678638
switch (Z_TYPE_P(array)) {
679639
case IS_ARRAY:
680-
if (mode != COUNT_RECURSIVE) {
640+
if (mode != PHP_COUNT_RECURSIVE) {
681641
cnt = zend_hash_num_elements(Z_ARRVAL_P(array));
682642
} else {
683643
cnt = php_count_recursive(Z_ARRVAL_P(array));
@@ -2397,7 +2357,7 @@ PHP_FUNCTION(extract)
23972357
{
23982358
zval *var_array_param;
23992359
zend_long extract_refs;
2400-
zend_long extract_type = EXTR_OVERWRITE;
2360+
zend_long extract_type = PHP_EXTR_OVERWRITE;
24012361
zend_string *prefix = NULL;
24022362
zend_long count;
24032363
zend_array *symbol_table;
@@ -2409,18 +2369,18 @@ PHP_FUNCTION(extract)
24092369
Z_PARAM_STR(prefix)
24102370
ZEND_PARSE_PARAMETERS_END();
24112371

2412-
extract_refs = (extract_type & EXTR_REFS);
2372+
extract_refs = (extract_type & PHP_EXTR_REFS);
24132373
if (extract_refs) {
24142374
SEPARATE_ARRAY(var_array_param);
24152375
}
24162376
extract_type &= 0xff;
24172377

2418-
if (extract_type < EXTR_OVERWRITE || extract_type > EXTR_IF_EXISTS) {
2378+
if (extract_type < PHP_EXTR_OVERWRITE || extract_type > PHP_EXTR_IF_EXISTS) {
24192379
zend_argument_value_error(2, "must be a valid extract type");
24202380
RETURN_THROWS();
24212381
}
24222382

2423-
if (extract_type > EXTR_SKIP && extract_type <= EXTR_PREFIX_IF_EXISTS && ZEND_NUM_ARGS() < 3) {
2383+
if (extract_type > PHP_EXTR_SKIP && extract_type <= PHP_EXTR_PREFIX_IF_EXISTS && ZEND_NUM_ARGS() < 3) {
24242384
zend_argument_value_error(3, "is required when using this extract type");
24252385
RETURN_THROWS();
24262386
}
@@ -2441,22 +2401,22 @@ PHP_FUNCTION(extract)
24412401

24422402
if (extract_refs) {
24432403
switch (extract_type) {
2444-
case EXTR_IF_EXISTS:
2404+
case PHP_EXTR_IF_EXISTS:
24452405
count = php_extract_ref_if_exists(Z_ARRVAL_P(var_array_param), symbol_table);
24462406
break;
2447-
case EXTR_OVERWRITE:
2407+
case PHP_EXTR_OVERWRITE:
24482408
count = php_extract_ref_overwrite(Z_ARRVAL_P(var_array_param), symbol_table);
24492409
break;
2450-
case EXTR_PREFIX_IF_EXISTS:
2410+
case PHP_EXTR_PREFIX_IF_EXISTS:
24512411
count = php_extract_ref_prefix_if_exists(Z_ARRVAL_P(var_array_param), symbol_table, prefix);
24522412
break;
2453-
case EXTR_PREFIX_SAME:
2413+
case PHP_EXTR_PREFIX_SAME:
24542414
count = php_extract_ref_prefix_same(Z_ARRVAL_P(var_array_param), symbol_table, prefix);
24552415
break;
2456-
case EXTR_PREFIX_ALL:
2416+
case PHP_EXTR_PREFIX_ALL:
24572417
count = php_extract_ref_prefix_all(Z_ARRVAL_P(var_array_param), symbol_table, prefix);
24582418
break;
2459-
case EXTR_PREFIX_INVALID:
2419+
case PHP_EXTR_PREFIX_INVALID:
24602420
count = php_extract_ref_prefix_invalid(Z_ARRVAL_P(var_array_param), symbol_table, prefix);
24612421
break;
24622422
default:
@@ -2468,22 +2428,22 @@ PHP_FUNCTION(extract)
24682428
zval array_copy;
24692429
ZVAL_COPY(&array_copy, var_array_param);
24702430
switch (extract_type) {
2471-
case EXTR_IF_EXISTS:
2431+
case PHP_EXTR_IF_EXISTS:
24722432
count = php_extract_if_exists(Z_ARRVAL(array_copy), symbol_table);
24732433
break;
2474-
case EXTR_OVERWRITE:
2434+
case PHP_EXTR_OVERWRITE:
24752435
count = php_extract_overwrite(Z_ARRVAL(array_copy), symbol_table);
24762436
break;
2477-
case EXTR_PREFIX_IF_EXISTS:
2437+
case PHP_EXTR_PREFIX_IF_EXISTS:
24782438
count = php_extract_prefix_if_exists(Z_ARRVAL(array_copy), symbol_table, prefix);
24792439
break;
2480-
case EXTR_PREFIX_SAME:
2440+
case PHP_EXTR_PREFIX_SAME:
24812441
count = php_extract_prefix_same(Z_ARRVAL(array_copy), symbol_table, prefix);
24822442
break;
2483-
case EXTR_PREFIX_ALL:
2443+
case PHP_EXTR_PREFIX_ALL:
24842444
count = php_extract_prefix_all(Z_ARRVAL(array_copy), symbol_table, prefix);
24852445
break;
2486-
case EXTR_PREFIX_INVALID:
2446+
case PHP_EXTR_PREFIX_INVALID:
24872447
count = php_extract_prefix_invalid(Z_ARRVAL(array_copy), symbol_table, prefix);
24882448
break;
24892449
default:

ext/standard/basic_functions.stub.php

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,126 @@
22

33
/** @generate-class-entries */
44

5+
/* array.c */
6+
7+
/**
8+
* @var int
9+
* @cvalue PHP_EXTR_OVERWRITE
10+
*/
11+
const EXTR_OVERWRITE = UNKNOWN;
12+
/**
13+
* @var int
14+
* @cvalue PHP_EXTR_SKIP
15+
*/
16+
const EXTR_SKIP = UNKNOWN;
17+
/**
18+
* @var int
19+
* @cvalue PHP_EXTR_PREFIX_SAME
20+
*/
21+
const EXTR_PREFIX_SAME = UNKNOWN;
22+
/**
23+
* @var int
24+
* @cvalue PHP_EXTR_PREFIX_ALL
25+
*/
26+
const EXTR_PREFIX_ALL = UNKNOWN;
27+
/**
28+
* @var int
29+
* @cvalue PHP_EXTR_PREFIX_INVALID
30+
*/
31+
const EXTR_PREFIX_INVALID = UNKNOWN;
32+
/**
33+
* @var int
34+
* @cvalue PHP_EXTR_PREFIX_IF_EXISTS
35+
*/
36+
const EXTR_PREFIX_IF_EXISTS = UNKNOWN;
37+
/**
38+
* @var int
39+
* @cvalue PHP_EXTR_IF_EXISTS
40+
*/
41+
const EXTR_IF_EXISTS = UNKNOWN;
42+
/**
43+
* @var int
44+
* @cvalue PHP_EXTR_REFS
45+
*/
46+
const EXTR_REFS = UNKNOWN;
47+
48+
/**
49+
* @var int
50+
* @cvalue PHP_SORT_ASC
51+
*/
52+
const SORT_ASC = UNKNOWN;
53+
/**
54+
* @var int
55+
* @cvalue PHP_SORT_DESC
56+
*/
57+
const SORT_DESC = UNKNOWN;
58+
59+
/**
60+
* @var int
61+
* @cvalue PHP_SORT_REGULAR
62+
*/
63+
const SORT_REGULAR = UNKNOWN;
64+
/**
65+
* @var int
66+
* @cvalue PHP_SORT_NUMERIC
67+
*/
68+
const SORT_NUMERIC = UNKNOWN;
69+
/**
70+
* @var int
71+
* @cvalue PHP_SORT_STRING
72+
*/
73+
const SORT_STRING = UNKNOWN;
74+
/**
75+
* @var int
76+
* @cvalue PHP_SORT_LOCALE_STRING
77+
*/
78+
const SORT_LOCALE_STRING = UNKNOWN;
79+
/**
80+
* @var int
81+
* @cvalue PHP_SORT_NATURAL
82+
*/
83+
const SORT_NATURAL = UNKNOWN;
84+
/**
85+
* @var int
86+
* @cvalue PHP_SORT_FLAG_CASE
87+
*/
88+
const SORT_FLAG_CASE = UNKNOWN;
89+
90+
/**
91+
* @var int
92+
* @cvalue PHP_CASE_LOWER
93+
*/
94+
const CASE_LOWER = UNKNOWN;
95+
/**
96+
* @var int
97+
* @cvalue PHP_CASE_UPPER
98+
*/
99+
const CASE_UPPER = UNKNOWN;
100+
101+
/**
102+
* @var int
103+
* @cvalue PHP_COUNT_NORMAL
104+
*/
105+
const COUNT_NORMAL = UNKNOWN;
106+
/**
107+
* @var int
108+
* @cvalue PHP_COUNT_RECURSIVE
109+
*/
110+
const COUNT_RECURSIVE = UNKNOWN;
111+
112+
/**
113+
* @var int
114+
* @cvalue ARRAY_FILTER_USE_BOTH
115+
*/
116+
const ARRAY_FILTER_USE_BOTH = UNKNOWN;
117+
/**
118+
* @var int
119+
* @cvalue ARRAY_FILTER_USE_KEY
120+
*/
121+
const ARRAY_FILTER_USE_KEY = UNKNOWN;
122+
123+
/* basic_functions.h */
124+
5125
/**
6126
* @var float
7127
* @cvalue M_E

ext/standard/basic_functions_arginfo.h

Lines changed: 23 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ext/standard/php_array.h

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,19 @@ PHPAPI zend_long php_count_recursive(HashTable *ht);
3434
PHPAPI bool php_array_data_shuffle(const php_random_algo *algo, php_random_status *status, zval *array);
3535
PHPAPI bool php_array_pick_keys(const php_random_algo *algo, php_random_status *status, zval *input, zend_long num_req, zval *retval, bool silent);
3636

37+
#define PHP_EXTR_OVERWRITE 0
38+
#define PHP_EXTR_SKIP 1
39+
#define PHP_EXTR_PREFIX_SAME 2
40+
#define PHP_EXTR_PREFIX_ALL 3
41+
#define PHP_EXTR_PREFIX_INVALID 4
42+
#define PHP_EXTR_PREFIX_IF_EXISTS 5
43+
#define PHP_EXTR_IF_EXISTS 6
44+
45+
#define PHP_EXTR_REFS 0x100
46+
47+
#define PHP_CASE_LOWER 0
48+
#define PHP_CASE_UPPER 1
49+
3750
#define PHP_SORT_REGULAR 0
3851
#define PHP_SORT_NUMERIC 1
3952
#define PHP_SORT_STRING 2
@@ -43,8 +56,8 @@ PHPAPI bool php_array_pick_keys(const php_random_algo *algo, php_random_status *
4356
#define PHP_SORT_NATURAL 6
4457
#define PHP_SORT_FLAG_CASE 8
4558

46-
#define COUNT_NORMAL 0
47-
#define COUNT_RECURSIVE 1
59+
#define PHP_COUNT_NORMAL 0
60+
#define PHP_COUNT_RECURSIVE 1
4861

4962
#define ARRAY_FILTER_USE_BOTH 1
5063
#define ARRAY_FILTER_USE_KEY 2

0 commit comments

Comments
 (0)