From 88e147441dc2c2374821783d89653974fded856b Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Tue, 29 Sep 2015 21:49:22 +0800 Subject: [PATCH] Make ZEND_ECHO and removed ZEND_PRINT distinguishable --- Zend/zend_compile.c | 8 ++++++-- Zend/zend_compile.h | 7 ++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 8e9f5414dd..4886fcc57e 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -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); diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index f6283fb5c9..3a0304101a 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -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() -- 2.40.0