summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-06-06 11:20:46 +0000
committerDmitry Stogov <dmitry@php.net>2005-06-06 11:20:46 +0000
commit91a344a5046651ece0a9f91411175a3c31d77c20 (patch)
tree3e8185718e59613478029d1eac0b5e313f3a1d53 /Zend/zend_compile.c
parentce23692663fe377111d79bc03cba88c21626841c (diff)
downloadphp-git-91a344a5046651ece0a9f91411175a3c31d77c20.tar.gz
Fixed bug #32428 (The @ warning error supression operator is broken)
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 31cded48c5..cdd56f6c0d 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -336,7 +336,9 @@ void fetch_simple_variable_ex(znode *result, znode *varname, int bp, zend_uchar
if (varname->op_type == IS_CONST && varname->u.constant.type == IS_STRING &&
!zend_is_auto_global(varname->u.constant.value.str.val, varname->u.constant.value.str.len TSRMLS_CC) &&
!(varname->u.constant.value.str.len == (sizeof("this")-1) &&
- !memcmp(varname->u.constant.value.str.val, "this", sizeof("this")))) {
+ !memcmp(varname->u.constant.value.str.val, "this", sizeof("this"))) &&
+ (CG(active_op_array)->last == 0 ||
+ CG(active_op_array)->opcodes[CG(active_op_array)->last-1].opcode != ZEND_BEGIN_SILENCE)) {
result->op_type = IS_CV;
result->u.var = lookup_cv(CG(active_op_array), varname->u.constant.value.str.val, varname->u.constant.value.str.len);
result->u.EA.type = 0;