]> granicus.if.org Git - php/commitdiff
Improve the conditions(save one comparison)
authorXinchen Hui <laruence@php.net>
Wed, 15 Jul 2015 02:55:41 +0000 (10:55 +0800)
committerXinchen Hui <laruence@php.net>
Wed, 15 Jul 2015 02:55:41 +0000 (10:55 +0800)
Zend/zend_vm_execute.h
Zend/zend_vm_gen.php

index 8419dccbc64f659ba993fc5738062d4e0cca563e..a229ba8f73311c66acbb6aa91d074c0bfbb7d646 100644 (file)
@@ -49553,10 +49553,7 @@ ZEND_API int zend_vm_call_opcode_handler(zend_execute_data* ex)
        LOAD_OPLINE();
 #if defined(ZEND_VM_FP_GLOBAL_REG) && defined(ZEND_VM_IP_GLOBAL_REG)
        ((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
-       ret = (opline) ? execute_data != ex : -1;
-       if (ret == 1 && execute_data->prev_execute_data != ex) {
-               ret = 2;;
-       }
+       ret = opline? ((execute_data != ex)? (int)(execute_data->prev_execute_data != ex) + 1 : 0) : -1;
 #else
        ret = ((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
 #endif
index ce4a32185f2f0af9c190fb0544e078665ca3891e..ed194486a4a121b87dd7bcdf8541e4bb5809bb66 100644 (file)
@@ -1606,10 +1606,7 @@ function gen_vm($def, $skel) {
                out($f, "\tLOAD_OPLINE();\n");
                out($f,"#if defined(ZEND_VM_FP_GLOBAL_REG) && defined(ZEND_VM_IP_GLOBAL_REG)\n");
                out($f, "\t((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);\n");
-               out($f, "\tret = (opline) ? execute_data != ex : -1;\n");
-               out($f, "\tif (ret == 1 && execute_data->prev_execute_data != ex) {\n");
-               out($f, "\t\tret = 2;;\n");
-               out($f, "\t}\n");
+               out($f, "\tret = opline? ((execute_data != ex)? (int)(execute_data->prev_execute_data != ex) + 1 : 0) : -1;\n");
                out($f, "#else\n");
                out($f, "\tret = ((opcode_handler_t)OPLINE->handler)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);\n");
                out($f, "#endif\n");