Skip to content

Refactor SplFixedArray #7168

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jun 18, 2021
Merged

Refactor SplFixedArray #7168

merged 7 commits into from
Jun 18, 2021

Conversation

Girgias
Copy link
Member

@Girgias Girgias commented Jun 18, 2021

This bundles a couple of things but it fixes the weird offset semantics/exceptions emitted depending on context and makes the audit for #6106 a tad easier.

Girgias added 7 commits June 18, 2021 12:53
It is only used there, which explains its weird offset semantics
- Implement warning for resource type
- Relax restictions on a string offset to better match the normal conversion to int semantics as the offset is always an integer (similar to string offsets)
- NULL is still not support as an offset
- Throw a proper TypeError instead of a RuntimeException
@Girgias Girgias force-pushed the fixed-array-refactoring branch from df278a5 to cedc415 Compare June 18, 2021 11:53
@Girgias Girgias merged commit e9e0627 into php:master Jun 18, 2021
@Girgias Girgias deleted the fixed-array-refactoring branch June 18, 2021 14:22
return Z_RES_HANDLE_P(offset);
}

zend_type_error("Illegal offset type");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would including the offset type make sense here - it may make this error easier to debug

zend_type_error("Illegal offset type %s", zend_zval_type_name(offset);

It's used in a few places

php-src/ext/session/session.c
2515:                                           zend_type_error("%s(): Option \"%s\" must be of type string|int|bool, %s given",
2516-                                                   get_active_function_name(), ZSTR_VAL(str_idx), zend_zval_type_name(value)
2517-                                           );

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants