version 1.1.1.3, 2013/07/22 01:32:15
|
version 1.1.1.5, 2014/06/15 20:04:03
|
Line 2
|
Line 2
|
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| Zend Engine | |
| 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, | |
| 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 | |
| that is bundled with this package in the file LICENSE, and is | |
Line 905 static zend_bool opline_is_fetch_this(const zend_op *o
|
Line 905 static zend_bool opline_is_fetch_this(const zend_op *o
|
{ |
{ |
if ((opline->opcode == ZEND_FETCH_W) && (opline->op1_type == IS_CONST) |
if ((opline->opcode == ZEND_FETCH_W) && (opline->op1_type == IS_CONST) |
&& (Z_TYPE(CONSTANT(opline->op1.constant)) == IS_STRING) |
&& (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_HASH_P(&CONSTANT(opline->op1.constant)) == THIS_HASHVAL) |
&& (Z_STRLEN(CONSTANT(opline->op1.constant)) == (sizeof("this")-1)) |
&& (Z_STRLEN(CONSTANT(opline->op1.constant)) == (sizeof("this")-1)) |
&& !memcmp(Z_STRVAL(CONSTANT(opline->op1.constant)), "this", sizeof("this"))) { |
&& !memcmp(Z_STRVAL(CONSTANT(opline->op1.constant)), "this", sizeof("this"))) { |
Line 1723 void zend_do_begin_function_declaration(znode *functio
|
Line 1724 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; |
zend_switch_entry switch_entry; |
|
|
switch_entry.cond.op_type = IS_UNUSED; |
switch_entry.cond.op_type = IS_UNUSED; |
Line 1817 void zend_do_end_function_declaration(const znode *fun
|
Line 1818 void zend_do_end_function_declaration(const znode *fun
|
CG(active_op_array) = function_token->u.op_array; |
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(switch_cond_stack)); |
zend_stack_del_top(&CG(foreach_copy_stack)); |
zend_stack_del_top(&CG(foreach_copy_stack)); |
} |
} |
Line 2584 static int generate_free_foreach_copy(const zend_op *f
|
Line 2585 static int generate_free_foreach_copy(const zend_op *f
|
{ |
{ |
zend_op *opline; |
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) { |
if (foreach_copy->result_type == IS_UNUSED && foreach_copy->op1_type == IS_UNUSED) { |
return 1; |
return 1; |
} |
} |
Line 3911 static void zend_traits_init_trait_structures(zend_cla
|
Line 3912 static void zend_traits_init_trait_structures(zend_cla
|
/** With the other traits, we are more permissive. |
/** With the other traits, we are more permissive. |
We do not give errors for those. This allows to be more |
We do not give errors for those. This allows to be more |
defensive in such definitions. |
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. |
is consistent in itself. |
*/ |
*/ |
j = 0; |
j = 0; |