|
|
|
@ -2933,11 +2933,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CONST_HANDLER(ZEND_O
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -3458,11 +3456,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_TMP_HANDLER(ZEND_OPC
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -3930,11 +3926,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_VAR_HANDLER(ZEND_OPC
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -4126,11 +4120,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER(ZEND_
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -4597,11 +4589,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_CV_HANDLER(ZEND_OPCO
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -6308,11 +6298,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CONST_HANDLER(ZEND_OPC
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -6783,11 +6771,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_TMP_HANDLER(ZEND_OPCOD
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -7258,11 +7244,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_VAR_HANDLER(ZEND_OPCOD
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -7354,11 +7338,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_UNUSED_HANDLER(ZEND_OP
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -7826,11 +7808,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_TMP_CV_HANDLER(ZEND_OPCODE
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -11037,11 +11017,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPC
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -11092,7 +11070,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
|
|
|
|
|
zend_free_op free_op1;
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
|
|
|
|
|
zval *offset = &opline->op2.u.constant;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_VAR != IS_VAR || container) {
|
|
|
|
|
if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -11104,14 +11081,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -11248,7 +11223,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CONST(
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_VAR != IS_VAR || container) {
|
|
|
|
|
|
|
|
|
@ -11262,16 +11236,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CONST(
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -12863,11 +12835,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMP_HANDLER(ZEND_OPCOD
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -12918,7 +12888,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLE
|
|
|
|
|
zend_free_op free_op1, free_op2;
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
|
|
|
|
|
zval *offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_VAR != IS_VAR || container) {
|
|
|
|
|
if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -12930,14 +12899,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLE
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -13074,7 +13041,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_TMP(in
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_VAR != IS_VAR || container) {
|
|
|
|
|
zend_free_op free_op2;
|
|
|
|
@ -13088,16 +13054,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_TMP(in
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -14740,11 +14704,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -14795,7 +14757,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
|
|
|
|
|
zend_free_op free_op1, free_op2;
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
|
|
|
|
|
zval *offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_VAR != IS_VAR || container) {
|
|
|
|
|
if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -14807,14 +14768,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -14951,7 +14910,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_VAR(in
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_VAR != IS_VAR || container) {
|
|
|
|
|
zend_free_op free_op2;
|
|
|
|
@ -14965,16 +14923,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_VAR(in
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -15670,11 +15626,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -17212,11 +17166,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -17267,7 +17219,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER
|
|
|
|
|
zend_free_op free_op1;
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
|
|
|
|
|
zval *offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_VAR != IS_VAR || container) {
|
|
|
|
|
if (IS_VAR == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -17279,14 +17230,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -17423,7 +17372,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CV(int
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_VAR != IS_VAR || container) {
|
|
|
|
|
|
|
|
|
@ -17437,16 +17385,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CV(int
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -18531,7 +18477,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_H
|
|
|
|
|
|
|
|
|
|
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
|
|
|
|
|
zval *offset = &opline->op2.u.constant;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_UNUSED != IS_VAR || container) {
|
|
|
|
|
if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -18543,14 +18488,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_H
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -18685,7 +18628,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CON
|
|
|
|
|
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_UNUSED != IS_VAR || container) {
|
|
|
|
|
|
|
|
|
@ -18699,16 +18641,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CON
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -19652,7 +19592,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HAN
|
|
|
|
|
zend_free_op free_op2;
|
|
|
|
|
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
|
|
|
|
|
zval *offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_UNUSED != IS_VAR || container) {
|
|
|
|
|
if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -19664,14 +19603,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HAN
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -19806,7 +19743,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_TMP
|
|
|
|
|
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_UNUSED != IS_VAR || container) {
|
|
|
|
|
zend_free_op free_op2;
|
|
|
|
@ -19820,16 +19756,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_TMP
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -20773,7 +20707,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HAN
|
|
|
|
|
zend_free_op free_op2;
|
|
|
|
|
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
|
|
|
|
|
zval *offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_UNUSED != IS_VAR || container) {
|
|
|
|
|
if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -20785,14 +20718,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HAN
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -20927,7 +20858,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_VAR
|
|
|
|
|
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_UNUSED != IS_VAR || container) {
|
|
|
|
|
zend_free_op free_op2;
|
|
|
|
@ -20941,16 +20871,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_VAR
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -22152,7 +22080,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HAND
|
|
|
|
|
|
|
|
|
|
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
|
|
|
|
|
zval *offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_UNUSED != IS_VAR || container) {
|
|
|
|
|
if (IS_UNUSED == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -22164,14 +22091,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HAND
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -22306,7 +22231,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CV(
|
|
|
|
|
zval **container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_UNUSED != IS_VAR || container) {
|
|
|
|
|
|
|
|
|
@ -22320,16 +22244,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CV(
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -25283,11 +25205,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CONST_HANDLER(ZEND_OPCO
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -25338,7 +25258,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDL
|
|
|
|
|
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_UNSET TSRMLS_CC);
|
|
|
|
|
zval *offset = &opline->op2.u.constant;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_CV != IS_VAR || container) {
|
|
|
|
|
if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -25350,14 +25269,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDL
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -25492,7 +25409,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CONST(i
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_IS TSRMLS_CC);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_CV != IS_VAR || container) {
|
|
|
|
|
|
|
|
|
@ -25506,16 +25422,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CONST(i
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -26997,11 +26911,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_TMP_HANDLER(ZEND_OPCODE
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -27052,7 +26964,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER
|
|
|
|
|
zend_free_op free_op2;
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_UNSET TSRMLS_CC);
|
|
|
|
|
zval *offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_CV != IS_VAR || container) {
|
|
|
|
|
if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -27064,14 +26975,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -27206,7 +27115,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_TMP(int
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_IS TSRMLS_CC);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_CV != IS_VAR || container) {
|
|
|
|
|
zend_free_op free_op2;
|
|
|
|
@ -27220,16 +27128,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_TMP(int
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -28761,11 +28667,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_VAR_HANDLER(ZEND_OPCODE
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -28816,7 +28720,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
|
|
|
|
|
zend_free_op free_op2;
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_UNSET TSRMLS_CC);
|
|
|
|
|
zval *offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC);
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_CV != IS_VAR || container) {
|
|
|
|
|
if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -28828,14 +28731,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -28970,7 +28871,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_VAR(int
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_IS TSRMLS_CC);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_CV != IS_VAR || container) {
|
|
|
|
|
zend_free_op free_op2;
|
|
|
|
@ -28984,16 +28884,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_VAR(int
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
@ -29585,11 +29483,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_UNUSED_HANDLER(ZEND_OPC
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -31018,11 +30914,9 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_CV_CV_HANDLER(ZEND_OPCODE_
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (offset) {
|
|
|
|
|
long l;
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
DVAL_TO_LVAL(Z_DVAL_P(offset), l);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), l, &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
zend_hash_index_update(Z_ARRVAL_P(array_ptr), zend_dval_to_lval(Z_DVAL_P(offset)), &expr_ptr, sizeof(zval *), NULL);
|
|
|
|
|
break;
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
@ -31073,7 +30967,6 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_
|
|
|
|
|
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_UNSET TSRMLS_CC);
|
|
|
|
|
zval *offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC);
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_CV != IS_VAR || container) {
|
|
|
|
|
if (IS_CV == IS_CV && container != &EG(uninitialized_zval_ptr)) {
|
|
|
|
@ -31085,14 +30978,12 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, zend_dval_to_lval(Z_DVAL_P(offset)));
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
zend_hash_index_del(ht, index);
|
|
|
|
|
zend_hash_index_del(ht, Z_LVAL_P(offset));
|
|
|
|
|
break;
|
|
|
|
|
case IS_STRING:
|
|
|
|
|
case IS_UNICODE: {
|
|
|
|
@ -31227,7 +31118,6 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CV(int
|
|
|
|
|
zval **container = _get_zval_ptr_ptr_cv(&opline->op1, EX(Ts), BP_VAR_IS TSRMLS_CC);
|
|
|
|
|
zval **value = NULL;
|
|
|
|
|
int result = 0;
|
|
|
|
|
long index;
|
|
|
|
|
|
|
|
|
|
if (IS_CV != IS_VAR || container) {
|
|
|
|
|
|
|
|
|
@ -31241,16 +31131,14 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CV(int
|
|
|
|
|
|
|
|
|
|
switch (Z_TYPE_P(offset)) {
|
|
|
|
|
case IS_DOUBLE:
|
|
|
|
|
index = (long) Z_DVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, zend_dval_to_lval(Z_DVAL_P(offset)), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case IS_RESOURCE:
|
|
|
|
|
case IS_BOOL:
|
|
|
|
|
case IS_LONG:
|
|
|
|
|
index = Z_LVAL_P(offset);
|
|
|
|
|
if (zend_hash_index_find(ht, index, (void **) &value) == SUCCESS) {
|
|
|
|
|
if (zend_hash_index_find(ht, Z_LVAL_P(offset), (void **) &value) == SUCCESS) {
|
|
|
|
|
isset = 1;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|