micro optimization

This commit is contained in:
Dmitry Stogov 2014-10-21 16:18:06 +04:00
parent 5d9792de9a
commit 33645f4f55
2 changed files with 22 additions and 44 deletions

View File

@ -1541,10 +1541,8 @@ ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
if (OP1_TYPE == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zend_free_op free_op2;
zval *property_name = GET_OP2_ZVAL_PTR(BP_VAR_R);

View File

@ -18483,10 +18483,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = opline->op2.zv;
@ -20695,10 +20693,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zend_free_op free_op2;
zval *property_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
@ -22820,10 +22816,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zend_free_op free_op2;
zval *property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
@ -24456,10 +24450,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HA
if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = NULL;
@ -26155,10 +26147,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
if (IS_VAR == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
@ -35480,10 +35470,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAND
if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = opline->op2.zv;
@ -37524,10 +37512,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLE
if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zend_free_op free_op2;
zval *property_name = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
@ -39521,10 +39507,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zend_free_op free_op2;
zval *property_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
@ -41027,10 +41011,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HAN
if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = NULL;
@ -42581,10 +42563,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER
if (IS_CV == IS_VAR && UNEXPECTED(object_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
if (UNEXPECTED(Z_ISREF_P(object_ptr)) && Z_TYPE_P(Z_REFVAL_P(object_ptr)) == IS_OBJECT) {
object_ptr = Z_REFVAL_P(object_ptr);
}
if (Z_TYPE_P(object_ptr) == IS_OBJECT) {
ZVAL_DEREF(object_ptr);
if (UNEXPECTED(Z_TYPE_P(object_ptr) == IS_OBJECT)) {
zval *property_name = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);