]> granicus.if.org Git - php/commitdiff
reduced size of temp_variariable
authorDmitry Stogov <dmitry@php.net>
Fri, 22 Oct 2010 14:51:07 +0000 (14:51 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 22 Oct 2010 14:51:07 +0000 (14:51 +0000)
NEWS
Zend/zend_execute.c
Zend/zend_execute.h
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

diff --git a/NEWS b/NEWS
index 78ab89698fe6b4f6d5a59fd926ed58848a0433e3..47d2f6dfc37e67e02730097f13476a40d479bc25 100644 (file)
--- 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.
index 5593c946b5ce9585b4113629eaae31ed958e565f..245304764bdcba475cdc459f24b3890d37db8be9 100644 (file)
@@ -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;
index e5eb26a5d02490a3c891cf1b7bad8b9530801f79..6a79d11a3fe6cbb0bfdac815e6329b67e96446a8 100644 (file)
@@ -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;
index 8052fa1b14d911fdaf7331d26f1798424f493306..0bebfa2ed7d52d375be264fd72cb5acb82b0c770 100644 (file)
@@ -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;
index e08954560b87dc9b5545eac0ac3c29890c27fc80..b517154e1e504132103e73d820d591dd4a99e955 100644 (file)
@@ -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;