Skip to content

Commit 600a8eb

Browse files
committed
ext/standard: make debug_zval_dump() output whether the array is packed
1 parent 66e95d9 commit 600a8eb

File tree

6 files changed

+35
-33
lines changed

6 files changed

+35
-33
lines changed

ext/mysqli/tests/mysqli_result_references.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ opcache.enable=0
8484
require_once 'clean_table.inc';
8585
?>
8686
--EXPECTF--
87-
array(7) refcount(2){
87+
array(7) packed refcount(2){
8888
[0]=>
8989
array(2) refcount(1){
9090
["id"]=>

ext/mysqli/tests/mysqli_result_references_mysqlnd.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ require_once 'skipifconnectfailure.inc';
5252
require_once 'clean_table.inc';
5353
?>
5454
--EXPECTF--
55-
array(1) refcount(%d){
55+
array(1) packed refcount(%d){
5656
[0]=>
5757
array(4) refcount(%d){
5858
["row_ref"]=>
@@ -74,7 +74,7 @@ array(1) refcount(%d){
7474
string(1) "1" interned
7575
}
7676
}
77-
array(2) refcount(%d){
77+
array(2) packed refcount(%d){
7878
[0]=>
7979
array(4) refcount(%d){
8080
["row_ref"]=>

ext/standard/tests/general_functions/debug_zval_dump_b.phpt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -184,36 +184,36 @@ bool(false)
184184
array(0) interned {
185185
}
186186
-- Iteration 44 --
187-
array(1) refcount(%d){
187+
array(1) packed refcount(%d){
188188
[0]=>
189189
NULL
190190
}
191191
-- Iteration 45 --
192-
array(1) refcount(%d){
192+
array(1) packed refcount(%d){
193193
[0]=>
194194
bool(true)
195195
}
196196
-- Iteration 46 --
197-
array(1) refcount(%d){
197+
array(1) packed refcount(%d){
198198
[0]=>
199199
string(0) "" interned
200200
}
201201
-- Iteration 47 --
202-
array(1) refcount(%d){
202+
array(1) packed refcount(%d){
203203
[0]=>
204204
string(0) "" interned
205205
}
206206
-- Iteration 48 --
207-
array(2) refcount(%d){
207+
array(2) packed refcount(%d){
208208
[0]=>
209-
array(2) refcount(%d){
209+
array(2) packed refcount(%d){
210210
[0]=>
211211
int(1)
212212
[1]=>
213213
int(2)
214214
}
215215
[1]=>
216-
array(2) refcount(%d){
216+
array(2) packed refcount(%d){
217217
[0]=>
218218
string(1) "a" interned
219219
[1]=>
@@ -228,31 +228,31 @@ array(2) refcount(%d){
228228
string(3) "One" refcount(%d)
229229
}
230230
-- Iteration 50 --
231-
array(1) refcount(%d){
231+
array(1) packed refcount(%d){
232232
[0]=>
233233
int(0)
234234
}
235235
-- Iteration 51 --
236-
array(1) refcount(%d){
236+
array(1) packed refcount(%d){
237237
[0]=>
238238
int(-1)
239239
}
240240
-- Iteration 52 --
241-
array(2) refcount(%d){
241+
array(2) packed refcount(%d){
242242
[0]=>
243243
float(10.5)
244244
[1]=>
245245
float(5.6)
246246
}
247247
-- Iteration 53 --
248-
array(2) refcount(%d){
248+
array(2) packed refcount(%d){
249249
[0]=>
250250
string(6) "string" refcount(%d)
251251
[1]=>
252252
string(4) "test" refcount(%d)
253253
}
254254
-- Iteration 54 --
255-
array(2) refcount(%d){
255+
array(2) packed refcount(%d){
256256
[0]=>
257257
string(6) "string" refcount(%d)
258258
[1]=>

ext/standard/tests/general_functions/debug_zval_dump_b_64bit.phpt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -188,36 +188,36 @@ bool(false)
188188
array(0) interned {
189189
}
190190
-- Iteration 44 --
191-
array(1) refcount(%d){
191+
array(1) packed refcount(%d){
192192
[0]=>
193193
NULL
194194
}
195195
-- Iteration 45 --
196-
array(1) refcount(%d){
196+
array(1) packed refcount(%d){
197197
[0]=>
198198
bool(true)
199199
}
200200
-- Iteration 46 --
201-
array(1) refcount(%d){
201+
array(1) packed refcount(%d){
202202
[0]=>
203203
string(0) "" interned
204204
}
205205
-- Iteration 47 --
206-
array(1) refcount(%d){
206+
array(1) packed refcount(%d){
207207
[0]=>
208208
string(0) "" interned
209209
}
210210
-- Iteration 48 --
211-
array(2) refcount(%d){
211+
array(2) packed refcount(%d){
212212
[0]=>
213-
array(2) refcount(%d){
213+
array(2) packed refcount(%d){
214214
[0]=>
215215
int(1)
216216
[1]=>
217217
int(2)
218218
}
219219
[1]=>
220-
array(2) refcount(%d){
220+
array(2) packed refcount(%d){
221221
[0]=>
222222
string(1) "a" interned
223223
[1]=>
@@ -232,31 +232,31 @@ array(2) refcount(%d){
232232
string(3) "One" refcount(%d)
233233
}
234234
-- Iteration 50 --
235-
array(1) refcount(%d){
235+
array(1) packed refcount(%d){
236236
[0]=>
237237
int(0)
238238
}
239239
-- Iteration 51 --
240-
array(1) refcount(%d){
240+
array(1) packed refcount(%d){
241241
[0]=>
242242
int(-1)
243243
}
244244
-- Iteration 52 --
245-
array(2) refcount(%d){
245+
array(2) packed refcount(%d){
246246
[0]=>
247247
float(10.5)
248248
[1]=>
249249
float(5.6)
250250
}
251251
-- Iteration 53 --
252-
array(2) refcount(%d){
252+
array(2) packed refcount(%d){
253253
[0]=>
254254
string(6) "string" refcount(%d)
255255
[1]=>
256256
string(4) "test" refcount(%d)
257257
}
258258
-- Iteration 54 --
259-
array(2) refcount(%d){
259+
array(2) packed refcount(%d){
260260
[0]=>
261261
string(6) "string" refcount(%d)
262262
[1]=>

ext/standard/tests/general_functions/debug_zval_dump_refs.phpt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ debug_zval_dump($a);
1616

1717
?>
1818
--EXPECT--
19-
array(1) refcount(2){
19+
array(1) packed refcount(2){
2020
[0]=>
2121
reference refcount(2) {
2222
int(1)
2323
}
2424
}
25-
array(2) refcount(2){
25+
array(2) packed refcount(2){
2626
[0]=>
2727
reference refcount(3) {
2828
int(1)
@@ -32,13 +32,13 @@ array(2) refcount(2){
3232
int(1)
3333
}
3434
}
35-
array(1) refcount(2){
35+
array(1) packed refcount(2){
3636
[0]=>
3737
reference refcount(2) {
3838
int(1)
3939
}
4040
}
41-
array(1) refcount(2){
41+
array(1) packed refcount(2){
4242
[0]=>
4343
reference refcount(1) {
4444
int(1)

ext/standard/var.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ PHPAPI void php_debug_zval_dump(zval *struc, int level) /* {{{ */
284284
zend_string *key;
285285
zval *val;
286286
uint32_t count;
287+
char *packed;
287288

288289
if (level > 1) {
289290
php_printf("%*c", level - 1, ' ');
@@ -325,11 +326,12 @@ PHPAPI void php_debug_zval_dump(zval *struc, int level) /* {{{ */
325326
GC_PROTECT_RECURSION(myht);
326327
}
327328
count = zend_hash_num_elements(myht);
329+
packed = HT_IS_PACKED(myht) ? "packed " : "";
328330
if (Z_REFCOUNTED_P(struc)) {
329331
/* -1 because of ADDREF above. */
330-
php_printf("array(%d) refcount(%u){\n", count, Z_REFCOUNT_P(struc) - 1);
332+
php_printf("array(%d) %srefcount(%u){\n", count, packed, Z_REFCOUNT_P(struc) - 1);
331333
} else {
332-
php_printf("array(%d) interned {\n", count);
334+
php_printf("array(%d) %sinterned {\n", count, packed);
333335
}
334336
ZEND_HASH_FOREACH_KEY_VAL(myht, index, key, val) {
335337
zval_array_element_dump(val, index, key, level);

0 commit comments

Comments
 (0)