Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
- index cda98fd..de9f3ed 100644
- --- a/Zend/zend_execute.c
- +++ b/Zend/zend_execute.c
- @@ -1561,6 +1561,8 @@ num_index:
- retval = zend_hash_index_add_new(ht, hval, &EG(uninitialized_zval));
- break;
- }
- + } else if (type == BP_VAR_R && UNEXPECTED(Z_ISREF_P(retval))) {
- + retval = Z_REFVAL_P(retval);
- }
- } else if (EXPECTED(Z_TYPE_P(dim) == IS_STRING)) {
- offset_key = Z_STR_P(dim);
- @@ -1591,7 +1593,11 @@ str_index:
- ZVAL_NULL(retval);
- break;
- }
- + } else if (type == BP_VAR_R && UNEXPECTED(Z_ISREF_P(retval))) {
- + retval = Z_REFVAL_P(retval);
- }
- + } else if (type == BP_VAR_R && UNEXPECTED(Z_ISREF_P(retval))) {
- + retval = Z_REFVAL_P(retval);
- }
- } else {
- switch (type) {
- diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
- index 83e74bc..75b3c98 100644
- --- a/Zend/zend_vm_def.h
- +++ b/Zend/zend_vm_def.h
- @@ -4868,14 +4868,6 @@ ZEND_VM_HANDLER(48, ZEND_CASE, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
- SAVE_OPLINE();
- if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R);
- - } else if ((OP1_TYPE & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) {
- - /* Don't keep lock on reference, lock the value instead */
- - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) {
- - ZVAL_UNREF(op1);
- - } else {
- - Z_DELREF_P(op1);
- - ZVAL_COPY(op1, Z_REFVAL_P(op1));
- - }
- }
- if (OP2_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = GET_OP2_UNDEF_CV(op2, BP_VAR_R);
- diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
- index 174c6de..8f534a3 100644
- --- a/Zend/zend_vm_execute.h
- +++ b/Zend/zend_vm_execute.h
- @@ -5851,14 +5851,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_CONST_HANDLER(
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R);
- - } else if ((IS_CONST & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) {
- - /* Don't keep lock on reference, lock the value instead */
- - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) {
- - ZVAL_UNREF(op1);
- - } else {
- - Z_DELREF_P(op1);
- - ZVAL_COPY(op1, Z_REFVAL_P(op1));
- - }
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = GET_OP2_UNDEF_CV(op2, BP_VAR_R);
- @@ -9647,14 +9639,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_CV_HANDLER(ZEN
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R);
- - } else if ((IS_CONST & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) {
- - /* Don't keep lock on reference, lock the value instead */
- - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) {
- - ZVAL_UNREF(op1);
- - } else {
- - Z_DELREF_P(op1);
- - ZVAL_COPY(op1, Z_REFVAL_P(op1));
- - }
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = GET_OP2_UNDEF_CV(op2, BP_VAR_R);
- @@ -11421,14 +11405,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_TMPVAR_HANDLER
- SAVE_OPLINE();
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R);
- - } else if ((IS_CONST & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) {
- - /* Don't keep lock on reference, lock the value instead */
- - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) {
- - ZVAL_UNREF(op1);
- - } else {
- - Z_DELREF_P(op1);
- - ZVAL_COPY(op1, Z_REFVAL_P(op1));
- - }
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = GET_OP2_UNDEF_CV(op2, BP_VAR_R);
- @@ -32195,14 +32171,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_CONST_HANDLER(ZEN
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R);
- - } else if ((IS_CV & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) {
- - /* Don't keep lock on reference, lock the value instead */
- - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) {
- - ZVAL_UNREF(op1);
- - } else {
- - Z_DELREF_P(op1);
- - ZVAL_COPY(op1, Z_REFVAL_P(op1));
- - }
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = GET_OP2_UNDEF_CV(op2, BP_VAR_R);
- @@ -37291,14 +37259,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_CV_HANDLER(ZEND_O
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R);
- - } else if ((IS_CV & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) {
- - /* Don't keep lock on reference, lock the value instead */
- - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) {
- - ZVAL_UNREF(op1);
- - } else {
- - Z_DELREF_P(op1);
- - ZVAL_COPY(op1, Z_REFVAL_P(op1));
- - }
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = GET_OP2_UNDEF_CV(op2, BP_VAR_R);
- @@ -39884,14 +39844,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_TMPVAR_HANDLER(ZE
- SAVE_OPLINE();
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R);
- - } else if ((IS_CV & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) {
- - /* Don't keep lock on reference, lock the value instead */
- - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) {
- - ZVAL_UNREF(op1);
- - } else {
- - Z_DELREF_P(op1);
- - ZVAL_COPY(op1, Z_REFVAL_P(op1));
- - }
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = GET_OP2_UNDEF_CV(op2, BP_VAR_R);
- @@ -42119,14 +42071,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_CONST_HANDLER
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R);
- - } else if (((IS_TMP_VAR|IS_VAR) & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) {
- - /* Don't keep lock on reference, lock the value instead */
- - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) {
- - ZVAL_UNREF(op1);
- - } else {
- - Z_DELREF_P(op1);
- - ZVAL_COPY(op1, Z_REFVAL_P(op1));
- - }
- }
- if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = GET_OP2_UNDEF_CV(op2, BP_VAR_R);
- @@ -44267,14 +44211,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_CV_HANDLER(ZE
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R);
- - } else if (((IS_TMP_VAR|IS_VAR) & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) {
- - /* Don't keep lock on reference, lock the value instead */
- - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) {
- - ZVAL_UNREF(op1);
- - } else {
- - Z_DELREF_P(op1);
- - ZVAL_COPY(op1, Z_REFVAL_P(op1));
- - }
- }
- if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = GET_OP2_UNDEF_CV(op2, BP_VAR_R);
- @@ -45414,14 +45350,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_TMPVAR_HANDLE
- SAVE_OPLINE();
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) {
- op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R);
- - } else if (((IS_TMP_VAR|IS_VAR) & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) {
- - /* Don't keep lock on reference, lock the value instead */
- - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) {
- - ZVAL_UNREF(op1);
- - } else {
- - Z_DELREF_P(op1);
- - ZVAL_COPY(op1, Z_REFVAL_P(op1));
- - }
- }
- if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op2) == IS_UNDEF)) {
- op2 = GET_OP2_UNDEF_CV(op2, BP_VAR_R);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement