]> granicus.if.org Git - php/commitdiff
Fixed bug #50351 (performance regression handling objects, ten times slower in 5...
authorDmitry Stogov <dmitry@php.net>
Mon, 7 Dec 2009 08:14:48 +0000 (08:14 +0000)
committerDmitry Stogov <dmitry@php.net>
Mon, 7 Dec 2009 08:14:48 +0000 (08:14 +0000)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 5a3020d616dcdfe3ee15c1e72686f5affed33a13..434478c920c444099d06570cb2253a798f010d3f 100644 (file)
@@ -3861,7 +3861,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
 {
        zend_op *opline = EX(opline);
        zend_free_op free_op1;
-       zval *array = GET_OP1_ZVAL_PTR(BP_VAR_R);
+       zval *array = EX_T(opline->op1.u.var).var.ptr;
        zval **value;
        zstr str_key;
        uint str_key_len;
@@ -3871,8 +3871,6 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
        int key_type = 0;
        zend_bool use_key = (zend_bool)(opline->extended_value & ZEND_FE_FETCH_WITH_KEY);
 
-       PZVAL_LOCK(array);
-
        switch (zend_iterator_unwrap(array, &iter TSRMLS_CC)) {
                default:
                case ZEND_ITER_INVALID:
index c90a479287710e78d92473709d76a0a00df2f269..620719aff73e3d6933f59bc15e878b05bee0a585 100644 (file)
@@ -9199,8 +9199,8 @@ static int ZEND_FASTCALL  ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
 static int ZEND_FASTCALL  ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        zend_op *opline = EX(opline);
-       zend_free_op free_op1;
-       zval *array = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
+
+       zval *array = EX_T(opline->op1.u.var).var.ptr;
        zval **value;
        zstr str_key;
        uint str_key_len;
@@ -9210,8 +9210,6 @@ static int ZEND_FASTCALL  ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
        int key_type = 0;
        zend_bool use_key = (zend_bool)(opline->extended_value & ZEND_FE_FETCH_WITH_KEY);
 
-       PZVAL_LOCK(array);
-
        switch (zend_iterator_unwrap(array, &iter TSRMLS_CC)) {
                default:
                case ZEND_ITER_INVALID: