1
0
mirror of https://github.com/php/php-src.git synced 2026-04-10 17:43:13 +02:00

Fixed empty()

This commit is contained in:
Dmitry Stogov
2014-02-27 12:48:53 +04:00
parent 0548ac59a5
commit 054917619a
2 changed files with 78 additions and 0 deletions

View File

@@ -4466,6 +4466,12 @@ ZEND_VM_HANDLER(114, ZEND_ISSET_ISEMPTY_VAR, CONST|TMP|VAR|CV, UNUSED|CONST|VAR)
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);

View File

@@ -4110,6 +4110,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_CONST_HANDLER(ZEND_O
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -5765,6 +5771,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_VAR_HANDLER(ZEND_OPC
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -6433,6 +6445,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_UNUSED_HANDLER(ZEND_
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -9121,6 +9139,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_CONST_HANDLER(ZEND_OPC
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -10759,6 +10783,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCOD
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -11316,6 +11346,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_UNUSED_HANDLER(ZEND_OP
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -15598,6 +15634,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPC
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -19971,6 +20013,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -21199,6 +21247,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -32147,6 +32201,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_CONST_HANDLER(ZEND_OPCO
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -36268,6 +36328,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);
@@ -37379,6 +37445,12 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_UNUSED_HANDLER(ZEND_OPC
(opline->extended_value & ZEND_QUICK_SET)) {
if (Z_TYPE_P(EX_VAR_NUM(opline->op1.var)) != IS_UNDEF) {
value = EX_VAR_NUM(opline->op1.var);
if (Z_TYPE_P(value) == IS_INDIRECT) {
value = Z_INDIRECT_P(value);
}
if (Z_TYPE_P(value) == IS_REFERENCE) {
value = Z_REFVAL_P(value);
}
} else if (EG(active_symbol_table)) {
zend_string *cv = CV_DEF_OF(opline->op1.var);