]> granicus.if.org Git - php/commitdiff
Fixed incorrrect merge (regenrate zend_vm_execute.h)
authorDmitry Stogov <dmitry@zend.com>
Thu, 18 Feb 2016 21:09:17 +0000 (00:09 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 18 Feb 2016 21:09:17 +0000 (00:09 +0300)
Zend/zend_vm_execute.h

index 5c944e4d7cddab24ab7e372214114781bcc4721d..b54e3f0b0fe8b20e27737676274c9f071a4b4f97 100644 (file)
@@ -27807,15 +27807,22 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U
                function_name = EX_CONSTANT(opline->op2);
                if (IS_CONST != IS_CONST) {
                        if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
-                               if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) {
-                                       GET_OP2_UNDEF_CV(function_name, BP_VAR_R);
-                                       if (UNEXPECTED(EG(exception) != NULL)) {
-                                               HANDLE_EXCEPTION();
+                               do {
+                                       if (IS_CONST & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) {
+                                               function_name = Z_REFVAL_P(function_name);
+                                               if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) {
+                                                       break;
+                                               }
+                                       } else if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) {
+                                               GET_OP2_UNDEF_CV(function_name, BP_VAR_R);
+                                               if (UNEXPECTED(EG(exception) != NULL)) {
+                                                       HANDLE_EXCEPTION();
+                                               }
                                        }
-                               }
-                               zend_throw_error(NULL, "Function name must be a string");
+                                       zend_throw_error(NULL, "Function name must be a string");
 
-                               HANDLE_EXCEPTION();
+                                       HANDLE_EXCEPTION();
+                               } while (0);
                        }
                }
 
@@ -29120,15 +29127,22 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U
                function_name = NULL;
                if (IS_UNUSED != IS_CONST) {
                        if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
-                               if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) {
-                                       GET_OP2_UNDEF_CV(function_name, BP_VAR_R);
-                                       if (UNEXPECTED(EG(exception) != NULL)) {
-                                               HANDLE_EXCEPTION();
+                               do {
+                                       if (IS_UNUSED & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) {
+                                               function_name = Z_REFVAL_P(function_name);
+                                               if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) {
+                                                       break;
+                                               }
+                                       } else if (IS_UNUSED == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) {
+                                               GET_OP2_UNDEF_CV(function_name, BP_VAR_R);
+                                               if (UNEXPECTED(EG(exception) != NULL)) {
+                                                       HANDLE_EXCEPTION();
+                                               }
                                        }
-                               }
-                               zend_throw_error(NULL, "Function name must be a string");
+                                       zend_throw_error(NULL, "Function name must be a string");
 
-                               HANDLE_EXCEPTION();
+                                       HANDLE_EXCEPTION();
+                               } while (0);
                        }
                }
 
@@ -31090,15 +31104,22 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U
                function_name = _get_zval_ptr_cv_undef(execute_data, opline->op2.var);
                if (IS_CV != IS_CONST) {
                        if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
-                               if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) {
-                                       GET_OP2_UNDEF_CV(function_name, BP_VAR_R);
-                                       if (UNEXPECTED(EG(exception) != NULL)) {
-                                               HANDLE_EXCEPTION();
+                               do {
+                                       if (IS_CV & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) {
+                                               function_name = Z_REFVAL_P(function_name);
+                                               if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) {
+                                                       break;
+                                               }
+                                       } else if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) {
+                                               GET_OP2_UNDEF_CV(function_name, BP_VAR_R);
+                                               if (UNEXPECTED(EG(exception) != NULL)) {
+                                                       HANDLE_EXCEPTION();
+                                               }
                                        }
-                               }
-                               zend_throw_error(NULL, "Function name must be a string");
+                                       zend_throw_error(NULL, "Function name must be a string");
 
-                               HANDLE_EXCEPTION();
+                                       HANDLE_EXCEPTION();
+                               } while (0);
                        }
                }
 
@@ -33325,15 +33346,22 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_U
                function_name = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2);
                if ((IS_TMP_VAR|IS_VAR) != IS_CONST) {
                        if (UNEXPECTED(Z_TYPE_P(function_name) != IS_STRING)) {
-                               if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) {
-                                       GET_OP2_UNDEF_CV(function_name, BP_VAR_R);
-                                       if (UNEXPECTED(EG(exception) != NULL)) {
-                                               HANDLE_EXCEPTION();
+                               do {
+                                       if ((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV) && Z_ISREF_P(function_name)) {
+                                               function_name = Z_REFVAL_P(function_name);
+                                               if (EXPECTED(Z_TYPE_P(function_name) == IS_STRING)) {
+                                                       break;
+                                               }
+                                       } else if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(function_name) == IS_UNDEF)) {
+                                               GET_OP2_UNDEF_CV(function_name, BP_VAR_R);
+                                               if (UNEXPECTED(EG(exception) != NULL)) {
+                                                       HANDLE_EXCEPTION();
+                                               }
                                        }
-                               }
-                               zend_throw_error(NULL, "Function name must be a string");
-                               zval_ptr_dtor_nogc(free_op2);
-                               HANDLE_EXCEPTION();
+                                       zend_throw_error(NULL, "Function name must be a string");
+                                       zval_ptr_dtor_nogc(free_op2);
+                                       HANDLE_EXCEPTION();
+                               } while (0);
                        }
                }