mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
Remove pointless operations from zend_user_serialize() (#18188)
We don't have to call zval_ptr_dtor() on IS_NULL, and we only have to check for the UNDEF type. Reduces code size from 231 to 199 on x86-64.
This commit is contained in:
parent
0607c22f8e
commit
4a7332f4c6
1 changed files with 1 additions and 2 deletions
|
@ -412,13 +412,12 @@ ZEND_API int zend_user_serialize(zval *object, unsigned char **buffer, size_t *b
|
||||||
zend_call_method_with_0_params(
|
zend_call_method_with_0_params(
|
||||||
Z_OBJ_P(object), Z_OBJCE_P(object), NULL, "serialize", &retval);
|
Z_OBJ_P(object), Z_OBJCE_P(object), NULL, "serialize", &retval);
|
||||||
|
|
||||||
if (Z_TYPE(retval) == IS_UNDEF || EG(exception)) {
|
if (Z_TYPE(retval) == IS_UNDEF) {
|
||||||
result = FAILURE;
|
result = FAILURE;
|
||||||
} else {
|
} else {
|
||||||
switch(Z_TYPE(retval)) {
|
switch(Z_TYPE(retval)) {
|
||||||
case IS_NULL:
|
case IS_NULL:
|
||||||
/* we could also make this '*buf_len = 0' but this allows to skip variables */
|
/* we could also make this '*buf_len = 0' but this allows to skip variables */
|
||||||
zval_ptr_dtor(&retval);
|
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
case IS_STRING:
|
case IS_STRING:
|
||||||
*buffer = (unsigned char*)estrndup(Z_STRVAL(retval), Z_STRLEN(retval));
|
*buffer = (unsigned char*)estrndup(Z_STRVAL(retval), Z_STRLEN(retval));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue