]> granicus.if.org Git - php/commitdiff
Make ZEND_ECHO and removed ZEND_PRINT distinguishable
authorXinchen Hui <laruence@gmail.com>
Tue, 29 Sep 2015 13:49:22 +0000 (21:49 +0800)
committerXinchen Hui <laruence@gmail.com>
Tue, 29 Sep 2015 13:49:22 +0000 (21:49 +0800)
Zend/zend_compile.c
Zend/zend_compile.h

index 8e9f5414ddbe709a87e9f34d83699ee7273387c8..4886fcc57ee38632effbc1bcf719cdcd367c559f 100644 (file)
@@ -3612,12 +3612,14 @@ void zend_compile_return(zend_ast *ast) /* {{{ */
 
 void zend_compile_echo(zend_ast *ast) /* {{{ */
 {
+       zend_op *opline;
        zend_ast *expr_ast = ast->child[0];
 
        znode expr_node;
        zend_compile_expr(&expr_node, expr_ast);
 
-       zend_emit_op(NULL, ZEND_ECHO, &expr_node, NULL);
+       opline = zend_emit_op(NULL, ZEND_ECHO, &expr_node, NULL);
+       opline->extended_value = ZEND_ECHO;
 }
 /* }}} */
 
@@ -6214,12 +6216,14 @@ void zend_compile_coalesce(znode *result, zend_ast *ast) /* {{{ */
 
 void zend_compile_print(znode *result, zend_ast *ast) /* {{{ */
 {
+       zend_op *opline;
        zend_ast *expr_ast = ast->child[0];
 
        znode expr_node;
        zend_compile_expr(&expr_node, expr_ast);
 
-       zend_emit_op(NULL, ZEND_ECHO, &expr_node, NULL);
+       opline = zend_emit_op(NULL, ZEND_ECHO, &expr_node, NULL);
+       opline->extended_value = ZEND_PRINT;
 
        result->op_type = IS_CONST;
        ZVAL_LONG(&result->u.constant, 1);
index f6283fb5c9b33877fb644b1155b8838b3f975986..3a0304101ae9deb060510009dbe1d82f117c5094 100644 (file)
@@ -954,9 +954,10 @@ static zend_always_inline int zend_check_arg_send_type(const zend_function *zf,
 #define ZEND_ARRAY_SIZE_SHIFT          2
 
 /* Pseudo-opcodes that are used only temporarily during compilation */
-#define ZEND_GOTO 253
-#define ZEND_BRK  254
-#define ZEND_CONT 255
+#define ZEND_PRINT 252
+#define ZEND_GOTO  253
+#define ZEND_BRK   254
+#define ZEND_CONT  255
 
 
 END_EXTERN_C()