|
|
|
|
@@ -15759,6 +15759,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CONST(
|
|
|
|
|
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
|
|
|
|
|
offset = opline->op2.zv;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -15838,7 +15841,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -17774,6 +17777,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_TMP(in
|
|
|
|
|
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
|
|
|
|
|
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -17853,7 +17859,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -20183,6 +20189,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_VAR(in
|
|
|
|
|
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
|
|
|
|
|
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -20262,7 +20271,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -23372,6 +23381,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CV(int
|
|
|
|
|
container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
|
|
|
|
|
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -23451,7 +23463,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -24815,6 +24827,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CON
|
|
|
|
|
container = _get_obj_zval_ptr_unused(TSRMLS_C);
|
|
|
|
|
offset = opline->op2.zv;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -24894,7 +24909,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -26090,6 +26105,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_TMP
|
|
|
|
|
container = _get_obj_zval_ptr_unused(TSRMLS_C);
|
|
|
|
|
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -26169,7 +26187,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -27365,6 +27383,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_VAR
|
|
|
|
|
container = _get_obj_zval_ptr_unused(TSRMLS_C);
|
|
|
|
|
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -27444,7 +27465,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -29040,6 +29061,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CV(
|
|
|
|
|
container = _get_obj_zval_ptr_unused(TSRMLS_C);
|
|
|
|
|
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -29119,7 +29143,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -32465,6 +32489,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CONST(i
|
|
|
|
|
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
|
|
|
|
|
offset = opline->op2.zv;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -32544,7 +32571,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -34355,6 +34382,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_TMP(int
|
|
|
|
|
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
|
|
|
|
|
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -34434,7 +34464,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -36639,6 +36669,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_VAR(int
|
|
|
|
|
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
|
|
|
|
|
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -36718,7 +36751,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
@@ -39572,6 +39605,9 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CV(int
|
|
|
|
|
container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
|
|
|
|
|
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(container) == IS_REFERENCE) {
|
|
|
|
|
container = Z_REFVAL_P(container);
|
|
|
|
|
}
|
|
|
|
|
if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
|
|
|
|
|
HashTable *ht;
|
|
|
|
|
int isset = 0;
|
|
|
|
|
@@ -39651,7 +39687,7 @@ num_index_prop:
|
|
|
|
|
zval tmp;
|
|
|
|
|
|
|
|
|
|
if (Z_TYPE_P(offset) != IS_LONG) {
|
|
|
|
|
if (Z_TYPE_P(offset) <= IS_BOOL /* simple scalar types */
|
|
|
|
|
if (!Z_REFCOUNTED_P(offset) /* 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))) {
|
|
|
|
|
ZVAL_DUP(&tmp, offset);
|
|
|
|
|
|