]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.4'
authorNikita Popov <nikita.ppv@gmail.com>
Tue, 2 Jul 2019 08:17:25 +0000 (10:17 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 2 Jul 2019 08:17:25 +0000 (10:17 +0200)
1  2 
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/standard/proc_open.c
main/main.c

index ab590904c6d324e0094cee5d64ffb00ee6b85495,8e5fb0ea2a569c4592574a9160562b993d670d5b..333a783a4dd3865e43d6b4deec61d9a5782fafd8
@@@ -2070,12 -2023,12 +2070,12 @@@ ZEND_VM_C_LABEL(fetch_obj_r_fast_copy)
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        ZEND_VM_C_GOTO(fetch_obj_r_copy);
                                                                } else {
                                                                        ZEND_VM_C_GOTO(fetch_obj_r_fast_copy);
@@@ -2239,12 -2179,12 +2239,12 @@@ ZEND_VM_C_LABEL(fetch_obj_is_fast_copy)
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (OP1_TYPE & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        ZEND_VM_C_GOTO(fetch_obj_is_copy);
                                                                } else {
                                                                        ZEND_VM_C_GOTO(fetch_obj_is_fast_copy);
index d668aca425f6dbf736cb4cea88f1a512d72e7ea5,492222d2c0da22bc0158c82eddb35501a47d393f..1c80b887b1111d314ccb9d2d69a4f2a00784abbe
@@@ -5183,12 -5186,12 +5183,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -5304,12 -5294,12 +5304,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -7312,12 -7293,12 +7312,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -7433,12 -7401,12 +7433,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -10031,12 -9993,12 +10031,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -10152,12 -10101,12 +10152,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CONST & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -13797,12 -13735,12 +13797,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -13918,12 -13843,12 +13918,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -15478,12 -15377,12 +15478,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -15599,12 -15485,12 +15599,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -17027,12 -16887,12 +17027,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -17148,12 -16995,12 +17148,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || ((IS_TMP_VAR|IS_VAR) & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -31850,12 -31238,12 +31850,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -32019,12 -31394,12 +32019,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -33900,12 -33125,12 +33900,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -34069,12 -33281,12 +34069,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -36615,12 -35682,12 +36615,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -36784,12 -35838,12 +36784,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_UNUSED & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -41389,12 -40284,12 +41389,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -41558,12 -40440,12 +41558,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -45453,12 -44180,12 +45453,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -45622,12 -44336,12 +45622,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
@@@ -51148,12 -49705,12 +51148,12 @@@ fetch_obj_r_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_r_copy;
                                                                } else {
                                                                        goto fetch_obj_r_fast_copy;
@@@ -51317,12 -49861,12 +51317,12 @@@ fetch_obj_is_fast_copy
                                                        Bucket *p = (Bucket*)((char*)zobj->properties->arData + idx);
  
                                                        if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
 -                                                      (EXPECTED(p->key == Z_STR_P(offset)) ||
 -                                                       (EXPECTED(p->h == ZSTR_H(Z_STR_P(offset))) &&
 +                                                      (EXPECTED(p->key == name) ||
 +                                                       (EXPECTED(p->h == ZSTR_H(name)) &&
                                                          EXPECTED(p->key != NULL) &&
 -                                                        EXPECTED(zend_string_equal_content(p->key, Z_STR_P(offset)))))) {
 +                                                        EXPECTED(zend_string_equal_content(p->key, name))))) {
                                                                retval = &p->val;
-                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR))) {
+                                                               if (!ZEND_VM_SPEC || (IS_CV & (IS_TMP_VAR|IS_VAR)) != 0) {
                                                                        goto fetch_obj_is_copy;
                                                                } else {
                                                                        goto fetch_obj_is_fast_copy;
index 77cf4931d076da1495a7bb65a6237ed69d444563,9a0bd941993ad944d8c48a7d43abb744489cd49f..f2e13f182178094549bc0cfb4ce4d4129ed22027
@@@ -474,7 -474,7 +474,7 @@@ static char *create_win_command_from_ar
  }
  #endif
  
- /* {{{ proto resource|false proc_open(string command, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]])
 -/* {{{ proto resource proc_open(string|array command, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]])
++/* {{{ proto resource|false proc_open(string|array command, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]])
     Run a process with more control over it's file descriptors */
  PHP_FUNCTION(proc_open)
  {
diff --cc main/main.c
Simple merge