. the size of zend_class_entry is reduced by sharing the same memory space
by different information for internal and user classes.
See zend_class_inttry.info union.
+ . reduced size of temp_variariable
- Improved CLI Interactive readline shell (Johannes)
. Added cli.pager ini setting to set a pager for output.
. Added cli.prompt ini settingto configure the shell prompt.
result->str_offset.str = container;
PZVAL_LOCK(container);
result->str_offset.offset = Z_LVAL_P(dim);
- result->var.ptr_ptr = NULL;
- result->var.ptr = NULL;
+ result->str_offset.ptr_ptr = NULL;
return;
}
break;
zend_bool fcall_returned_reference;
} var;
struct {
- zval **ptr_ptr;
- zval *ptr;
- zend_bool fcall_returned_reference;
+ zval **ptr_ptr; /* shared with var.ptr_ptr */
zval *str;
zend_uint offset;
} str_offset;
struct {
- zval **ptr_ptr;
- zval *ptr;
- zend_bool fcall_returned_reference;
+ zval **ptr_ptr; /* shared with var.ptr_ptr */
+ zval *ptr; /* shared with var.ptr */
HashPointer fe_pos;
} fe;
zend_class_entry *class_entry;
}
}
- AI_SET_PTR(&EX_T(opline->result.var), array_ptr);
+ EX_T(opline->result.var).fe.ptr = array_ptr;
if (iter) {
iter->index = 0;
{
USE_OPLINE
zend_free_op free_op1;
- zval *array = EX_T(opline->op1.var).var.ptr;
+ zval *array = EX_T(opline->op1.var).fe.ptr;
zval **value;
char *str_key;
uint str_key_len;
}
}
- AI_SET_PTR(&EX_T(opline->result.var), array_ptr);
+ EX_T(opline->result.var).fe.ptr = array_ptr;
if (iter) {
iter->index = 0;
}
}
- AI_SET_PTR(&EX_T(opline->result.var), array_ptr);
+ EX_T(opline->result.var).fe.ptr = array_ptr;
if (iter) {
iter->index = 0;
}
}
- AI_SET_PTR(&EX_T(opline->result.var), array_ptr);
+ EX_T(opline->result.var).fe.ptr = array_ptr;
if (iter) {
iter->index = 0;
{
USE_OPLINE
- zval *array = EX_T(opline->op1.var).var.ptr;
+ zval *array = EX_T(opline->op1.var).fe.ptr;
zval **value;
char *str_key;
uint str_key_len;
}
}
- AI_SET_PTR(&EX_T(opline->result.var), array_ptr);
+ EX_T(opline->result.var).fe.ptr = array_ptr;
if (iter) {
iter->index = 0;