--- embedaddon/php/Zend/zend_compile.c 2013/07/22 01:32:15 1.1.1.3 +++ embedaddon/php/Zend/zend_compile.c 2014/06/15 20:04:03 1.1.1.5 @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.c,v 1.1.1.3 2013/07/22 01:32:15 misho Exp $ */ +/* $Id: zend_compile.c,v 1.1.1.5 2014/06/15 20:04:03 misho Exp $ */ #include #include "zend.h" @@ -905,6 +905,7 @@ static zend_bool opline_is_fetch_this(const zend_op *o { if ((opline->opcode == ZEND_FETCH_W) && (opline->op1_type == IS_CONST) && (Z_TYPE(CONSTANT(opline->op1.constant)) == IS_STRING) + && ((opline->extended_value & ZEND_FETCH_STATIC_MEMBER) != ZEND_FETCH_STATIC_MEMBER) && (Z_HASH_P(&CONSTANT(opline->op1.constant)) == THIS_HASHVAL) && (Z_STRLEN(CONSTANT(opline->op1.constant)) == (sizeof("this")-1)) && !memcmp(Z_STRVAL(CONSTANT(opline->op1.constant)), "this", sizeof("this"))) { @@ -1723,7 +1724,7 @@ void zend_do_begin_function_declaration(znode *functio } { - /* Push a seperator to the switch and foreach stacks */ + /* Push a separator to the switch and foreach stacks */ zend_switch_entry switch_entry; switch_entry.cond.op_type = IS_UNUSED; @@ -1817,7 +1818,7 @@ void zend_do_end_function_declaration(const znode *fun CG(active_op_array) = function_token->u.op_array; - /* Pop the switch and foreach seperators */ + /* Pop the switch and foreach separators */ zend_stack_del_top(&CG(switch_cond_stack)); zend_stack_del_top(&CG(foreach_copy_stack)); } @@ -2584,7 +2585,7 @@ static int generate_free_foreach_copy(const zend_op *f { zend_op *opline; - /* If we reach the seperator then stop applying the stack */ + /* If we reach the separator then stop applying the stack */ if (foreach_copy->result_type == IS_UNUSED && foreach_copy->op1_type == IS_UNUSED) { return 1; } @@ -3911,7 +3912,7 @@ static void zend_traits_init_trait_structures(zend_cla /** With the other traits, we are more permissive. We do not give errors for those. This allows to be more defensive in such definitions. - However, we want to make sure that the insteadof declartion + However, we want to make sure that the insteadof declaration is consistent in itself. */ j = 0;