}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_UNUSED == IS_CV || IS_UNUSED == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_UNUSED == IS_CV || IS_UNUSED == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_UNUSED == IS_CV || IS_UNUSED == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_UNUSED == IS_CV || IS_UNUSED == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {
}
if (opline->extended_value & ZEND_ISSET) {
- if (isset && Z_TYPE_P(value) != IS_NULL) {
+ if (isset && Z_TYPE_P(value) != IS_NULL &&
+ (!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL)) {
ZVAL_BOOL(EX_VAR(opline->result.var), 1);
} else {
ZVAL_BOOL(EX_VAR(opline->result.var), 0);
result = 0;
if (UNEXPECTED(Z_TYPE_P(offset) != IS_LONG)) {
+ if (IS_CV == IS_CV || IS_CV == IS_VAR) {
+ ZVAL_DEREF(offset);
+ }
if (Z_TYPE_P(offset) < IS_STRING /* simple scalar types */
|| (Z_TYPE_P(offset) == IS_STRING /* or numeric string */
&& IS_LONG == is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), NULL, NULL, 0))) {