Skip to content

Commit d138d35

Browse files
committed
Z_PARAM_ARRAY, no explicit cast
1 parent c73a910 commit d138d35

File tree

4 files changed

+67
-67
lines changed

4 files changed

+67
-67
lines changed

ext/standard/tests/array/array_modify_arg_in_place_optimization.phpt

Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -31,104 +31,104 @@ $anotherList = [8, 9];
3131
echo "*** array_merge ***\n";
3232

3333
// const empty 2nd array
34-
$ptrBefore = zend_get_zval_ptr($listInt);
34+
$ptrBefore = zend_get_array_ptr($listInt);
3535
$listInt = array_merge($listInt, []);
36-
$ptrAfter = zend_get_zval_ptr($listInt);
36+
$ptrAfter = zend_get_array_ptr($listInt);
3737
var_dump($ptrAfter === $ptrBefore);
3838

39-
$ptrBefore = zend_get_zval_ptr($listStr);
39+
$ptrBefore = zend_get_array_ptr($listStr);
4040
$listStr = array_merge($listStr, []);
41-
$ptrAfter = zend_get_zval_ptr($listStr);
41+
$ptrAfter = zend_get_array_ptr($listStr);
4242
var_dump($ptrAfter === $ptrBefore);
4343

44-
$ptrBefore = zend_get_zval_ptr($mapInt);
44+
$ptrBefore = zend_get_array_ptr($mapInt);
4545
$mapInt = array_merge($mapInt, []);
46-
$ptrAfter = zend_get_zval_ptr($mapInt);
46+
$ptrAfter = zend_get_array_ptr($mapInt);
4747
var_dump($ptrAfter === $ptrBefore);
4848

49-
$ptrBefore = zend_get_zval_ptr($mapObj);
49+
$ptrBefore = zend_get_array_ptr($mapObj);
5050
$mapObj = array_merge($mapObj, []);
51-
$ptrAfter = zend_get_zval_ptr($mapObj);
51+
$ptrAfter = zend_get_array_ptr($mapObj);
5252
var_dump($ptrAfter === $ptrBefore);
5353

5454
// const non-empty 2nd array
55-
$ptrBefore = zend_get_zval_ptr($listInt);
55+
$ptrBefore = zend_get_array_ptr($listInt);
5656
$listInt = array_merge($listInt, [4]);
57-
$ptrAfter = zend_get_zval_ptr($listInt);
57+
$ptrAfter = zend_get_array_ptr($listInt);
5858
var_dump($ptrAfter === $ptrBefore);
5959

60-
$ptrBefore = zend_get_zval_ptr($listStr);
60+
$ptrBefore = zend_get_array_ptr($listStr);
6161
$listStr = array_merge($listStr, [4]);
62-
$ptrAfter = zend_get_zval_ptr($listStr);
62+
$ptrAfter = zend_get_array_ptr($listStr);
6363
var_dump($ptrAfter === $ptrBefore);
6464

65-
$ptrBefore = zend_get_zval_ptr($mapInt);
65+
$ptrBefore = zend_get_array_ptr($mapInt);
6666
$mapInt = array_merge($mapInt, [4]);
67-
$ptrAfter = zend_get_zval_ptr($mapInt);
67+
$ptrAfter = zend_get_array_ptr($mapInt);
6868
var_dump($ptrAfter === $ptrBefore);
6969

70-
$ptrBefore = zend_get_zval_ptr($mapObj);
70+
$ptrBefore = zend_get_array_ptr($mapObj);
7171
$mapObj = array_merge($mapObj, [4]);
72-
$ptrAfter = zend_get_zval_ptr($mapObj);
72+
$ptrAfter = zend_get_array_ptr($mapObj);
7373
var_dump($ptrAfter === $ptrBefore);
7474

7575
// non-const non-empty 2nd array
76-
$ptrBefore = zend_get_zval_ptr($listInt);
76+
$ptrBefore = zend_get_array_ptr($listInt);
7777
$listInt = array_merge($listInt, $anotherList);
78-
$ptrAfter = zend_get_zval_ptr($listInt);
78+
$ptrAfter = zend_get_array_ptr($listInt);
7979
var_dump($ptrAfter === $ptrBefore);
8080

81-
$ptrBefore = zend_get_zval_ptr($listStr);
81+
$ptrBefore = zend_get_array_ptr($listStr);
8282
$listStr = array_merge($listStr, $anotherList);
83-
$ptrAfter = zend_get_zval_ptr($listStr);
83+
$ptrAfter = zend_get_array_ptr($listStr);
8484
var_dump($ptrAfter === $ptrBefore);
8585

86-
$ptrBefore = zend_get_zval_ptr($mapInt);
86+
$ptrBefore = zend_get_array_ptr($mapInt);
8787
$mapInt = array_merge($mapInt, $anotherList);
88-
$ptrAfter = zend_get_zval_ptr($mapInt);
88+
$ptrAfter = zend_get_array_ptr($mapInt);
8989
var_dump($ptrAfter === $ptrBefore);
9090

91-
$ptrBefore = zend_get_zval_ptr($mapObj);
91+
$ptrBefore = zend_get_array_ptr($mapObj);
9292
$mapObj = array_merge($mapObj, $anotherList);
93-
$ptrAfter = zend_get_zval_ptr($mapObj);
93+
$ptrAfter = zend_get_array_ptr($mapObj);
9494
var_dump($ptrAfter === $ptrBefore);
9595

9696
// non-1st argument as a result
97-
$ptrBefore = zend_get_zval_ptr($listInt);
97+
$ptrBefore = zend_get_array_ptr($listInt);
9898
$listInt = array_merge($anotherList, $listInt);
99-
$ptrAfter = zend_get_zval_ptr($listInt);
99+
$ptrAfter = zend_get_array_ptr($listInt);
100100
var_dump($ptrAfter === $ptrBefore);
101101

102-
$ptrBefore = zend_get_zval_ptr($listStr);
102+
$ptrBefore = zend_get_array_ptr($listStr);
103103
$listStr = array_merge($anotherList, $listStr);
104-
$ptrAfter = zend_get_zval_ptr($listStr);
104+
$ptrAfter = zend_get_array_ptr($listStr);
105105
var_dump($ptrAfter === $ptrBefore);
106106

107-
$ptrBefore = zend_get_zval_ptr($mapInt);
107+
$ptrBefore = zend_get_array_ptr($mapInt);
108108
$mapInt = array_merge($anotherList, $mapInt);
109-
$ptrAfter = zend_get_zval_ptr($mapInt);
109+
$ptrAfter = zend_get_array_ptr($mapInt);
110110
var_dump($ptrAfter === $ptrBefore);
111111

112-
$ptrBefore = zend_get_zval_ptr($mapObj);
112+
$ptrBefore = zend_get_array_ptr($mapObj);
113113
$mapObj = array_merge($anotherList, $mapObj);
114-
$ptrAfter = zend_get_zval_ptr($mapObj);
114+
$ptrAfter = zend_get_array_ptr($mapObj);
115115
var_dump($ptrAfter === $ptrBefore);
116116

117117
echo "---\n";
118118
foreach ($listInt as $v) {
119-
$ptrBefore = zend_get_zval_ptr($listInt);
119+
$ptrBefore = zend_get_array_ptr($listInt);
120120
$listInt = array_merge($listInt, [$v]); // 2nd and 3rd iteration must not copy the array
121-
$ptrAfter = zend_get_zval_ptr($listInt);
121+
$ptrAfter = zend_get_array_ptr($listInt);
122122
var_dump($ptrAfter === $ptrBefore);
123123

124124
if ($v === 1) { // 3rd iteration
125125
break;
126126
}
127127
}
128128
foreach (array_keys($listInt) as $k) {
129-
$ptrBefore = zend_get_zval_ptr($listInt);
129+
$ptrBefore = zend_get_array_ptr($listInt);
130130
$listInt = array_merge($listInt, [$listInt[$k]]); // array must never be copied
131-
$ptrAfter = zend_get_zval_ptr($listInt);
131+
$ptrAfter = zend_get_array_ptr($listInt);
132132
var_dump($ptrAfter === $ptrBefore);
133133

134134
if ($listInt[$k] === 1) { // 3rd iteration
@@ -161,73 +161,73 @@ $oneListInt = array_slice($listInt, 0, 1, true);
161161
$oneMapObj = array_slice($mapObj, 0, 1, true);
162162

163163
$listInt[] = -1;
164-
$ptrBefore = zend_get_zval_ptr($listInt);
164+
$ptrBefore = zend_get_array_ptr($listInt);
165165
$listInt = array_intersect($listInt, $oneListInt);
166-
$ptrAfter = zend_get_zval_ptr($listInt);
166+
$ptrAfter = zend_get_array_ptr($listInt);
167167
var_dump($ptrAfter === $ptrBefore);
168168

169169
$mapObj[] = -1;
170-
$ptrBefore = zend_get_zval_ptr($mapObj);
170+
$ptrBefore = zend_get_array_ptr($mapObj);
171171
$mapObj = array_intersect($mapObj, $oneMapObj);
172-
$ptrAfter = zend_get_zval_ptr($mapObj);
172+
$ptrAfter = zend_get_array_ptr($mapObj);
173173
var_dump($ptrAfter === $ptrBefore);
174174

175175
$listInt[] = -1;
176-
$ptrBefore = zend_get_zval_ptr($listInt);
176+
$ptrBefore = zend_get_array_ptr($listInt);
177177
$listInt = array_intersect_assoc($listInt, $oneListInt);
178-
$ptrAfter = zend_get_zval_ptr($listInt);
178+
$ptrAfter = zend_get_array_ptr($listInt);
179179
var_dump($ptrAfter === $ptrBefore);
180180

181181
$mapObj[] = -1;
182-
$ptrBefore = zend_get_zval_ptr($mapObj);
182+
$ptrBefore = zend_get_array_ptr($mapObj);
183183
$mapObj = array_intersect_assoc($mapObj, $oneMapObj);
184-
$ptrAfter = zend_get_zval_ptr($mapObj);
184+
$ptrAfter = zend_get_array_ptr($mapObj);
185185
var_dump($ptrAfter === $ptrBefore);
186186

187187
$listInt[] = -1;
188-
$ptrBefore = zend_get_zval_ptr($listInt);
188+
$ptrBefore = zend_get_array_ptr($listInt);
189189
$listInt = array_intersect_key($listInt, $oneListInt);
190-
$ptrAfter = zend_get_zval_ptr($listInt);
190+
$ptrAfter = zend_get_array_ptr($listInt);
191191
var_dump($ptrAfter === $ptrBefore);
192192

193193
$listInt[] = -1;
194-
$ptrBefore = zend_get_zval_ptr($listInt);
194+
$ptrBefore = zend_get_array_ptr($listInt);
195195
$listInt = array_intersect_ukey($listInt, $oneListInt, fn ($k1, $k2) => $k1 <=> $k2);
196-
$ptrAfter = zend_get_zval_ptr($listInt);
196+
$ptrAfter = zend_get_array_ptr($listInt);
197197
var_dump($ptrAfter === $ptrBefore);
198198

199199
$mapObj[] = -1;
200-
$ptrBefore = zend_get_zval_ptr($mapObj);
200+
$ptrBefore = zend_get_array_ptr($mapObj);
201201
$mapObj = array_intersect_ukey($mapObj, $oneListInt, fn ($k1, $k2) => $k1 <=> $k2);
202-
$ptrAfter = zend_get_zval_ptr($mapObj);
202+
$ptrAfter = zend_get_array_ptr($mapObj);
203203
var_dump($ptrAfter === $ptrBefore);
204204

205205
echo "*** array_unique ***\n";
206206

207207
$listInt[] = end($listInt);
208-
$ptrBefore = zend_get_zval_ptr($listInt);
208+
$ptrBefore = zend_get_array_ptr($listInt);
209209
$listInt = array_unique($listInt);
210-
$ptrAfter = zend_get_zval_ptr($listInt);
210+
$ptrAfter = zend_get_array_ptr($listInt);
211211
var_dump($ptrAfter === $ptrBefore);
212212

213213
$mapObj[] = end($mapObj);
214-
$ptrBefore = zend_get_zval_ptr($mapObj);
214+
$ptrBefore = zend_get_array_ptr($mapObj);
215215
$mapObj = array_unique($mapObj, SORT_REGULAR);
216-
$ptrAfter = zend_get_zval_ptr($mapObj);
216+
$ptrAfter = zend_get_array_ptr($mapObj);
217217
var_dump($ptrAfter === $ptrBefore);
218218

219219
echo "*** array_replace ***\n";
220220

221221
$listInt[] = end($listInt);
222-
$ptrBefore = zend_get_zval_ptr($listInt);
222+
$ptrBefore = zend_get_array_ptr($listInt);
223223
$listInt = array_replace($listInt, ['*']);
224-
$ptrAfter = zend_get_zval_ptr($listInt);
224+
$ptrAfter = zend_get_array_ptr($listInt);
225225
var_dump($ptrAfter === $ptrBefore);
226226

227227
$mapObj[] = end($mapObj);
228-
$ptrBefore = zend_get_zval_ptr($mapObj);
228+
$ptrBefore = zend_get_array_ptr($mapObj);
229229
$mapObj = array_replace($mapObj, ['*']);
230-
$ptrAfter = zend_get_zval_ptr($mapObj);
230+
$ptrAfter = zend_get_array_ptr($mapObj);
231231
var_dump($ptrAfter === $ptrBefore);
232232

233233
print_r($listInt);

ext/zend_test/test.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -435,15 +435,15 @@ static ZEND_FUNCTION(zend_test_is_string_marked_as_valid_utf8)
435435
RETURN_BOOL(ZSTR_IS_VALID_UTF8(str));
436436
}
437437

438-
static ZEND_FUNCTION(zend_get_zval_ptr)
438+
static ZEND_FUNCTION(zend_get_array_ptr)
439439
{
440440
zval *v;
441441

442442
ZEND_PARSE_PARAMETERS_START(1, 1)
443-
Z_PARAM_ZVAL(v)
443+
Z_PARAM_ARRAY(v)
444444
ZEND_PARSE_PARAMETERS_END();
445445

446-
RETURN_LONG((zend_long) Z_ARR_P(v));
446+
RETURN_LONG(Z_ARR_P(v));
447447
}
448448

449449
static ZEND_FUNCTION(ZendTestNS2_namespaced_func)

ext/zend_test/test.stub.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ function zend_test_crash(?string $message = null): void {}
197197

198198
function zend_test_fill_packed_array(array &$array): void {}
199199

200-
function zend_get_zval_ptr(mixed $variable): int {}
200+
function zend_get_array_ptr(array $array): int {}
201201
}
202202

203203
namespace ZendTestNS {

ext/zend_test/test_arginfo.h

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

0 commit comments

Comments
 (0)