From 68e154b1bf313129e23d9b0356181d7f9c78a042 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Fri, 22 Oct 2010 14:51:07 +0000 Subject: [PATCH] reduced size of temp_variariable --- NEWS | 1 + Zend/zend_execute.c | 3 +-- Zend/zend_execute.h | 9 +++------ Zend/zend_vm_def.h | 4 ++-- Zend/zend_vm_execute.h | 10 +++++----- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/NEWS b/NEWS index 78ab89698fe..47d2f6dfc37 100644 --- a/NEWS +++ b/NEWS @@ -91,6 +91,7 @@ . 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. diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 5593c946b5c..245304764bd 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1144,8 +1144,7 @@ convert_to_array: 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; diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index e5eb26a5d02..6a79d11a3fe 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -35,16 +35,13 @@ typedef union _temp_variable { 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; diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 8052fa1b14d..0bebfa2ed7d 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -4039,7 +4039,7 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY) } } - AI_SET_PTR(&EX_T(opline->result.var), array_ptr); + EX_T(opline->result.var).fe.ptr = array_ptr; if (iter) { iter->index = 0; @@ -4097,7 +4097,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY) { 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; diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index e08954560b8..b517154e1e5 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -2542,7 +2542,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A } } - AI_SET_PTR(&EX_T(opline->result.var), array_ptr); + EX_T(opline->result.var).fe.ptr = array_ptr; if (iter) { iter->index = 0; @@ -6805,7 +6805,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG } } - AI_SET_PTR(&EX_T(opline->result.var), array_ptr); + EX_T(opline->result.var).fe.ptr = array_ptr; if (iter) { iter->index = 0; @@ -11094,7 +11094,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG } } - AI_SET_PTR(&EX_T(opline->result.var), array_ptr); + EX_T(opline->result.var).fe.ptr = array_ptr; if (iter) { iter->index = 0; @@ -11152,7 +11152,7 @@ static int ZEND_FASTCALL ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG { 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; @@ -26765,7 +26765,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS } } - AI_SET_PTR(&EX_T(opline->result.var), array_ptr); + EX_T(opline->result.var).fe.ptr = array_ptr; if (iter) { iter->index = 0;