]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.0' into PHP-7.1
authorDmitry Stogov <dmitry@zend.com>
Wed, 1 Feb 2017 13:05:57 +0000 (16:05 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 1 Feb 2017 13:05:57 +0000 (16:05 +0300)
* PHP-7.0:
  fixed macro

1  2 
Zend/zend_types.h

index fbf990821b7ab3d06d6666557b6188534fa46444,7230066050c04ec7fd8662bffe4af095d1c0a790..a733177b4ccc62623c5cd3782eb14509fa1dc878
@@@ -921,28 -910,12 +921,29 @@@ static zend_always_inline uint32_t zval
                efree_size(ref, sizeof(zend_reference));                \
        } while (0)
  
 +#define ZVAL_COPY_UNREF(z, v) do {                                            \
 +              zval *_z3 = (v);                                                                \
 +              if (Z_REFCOUNTED_P(_z3)) {                                              \
 +                      if (UNEXPECTED(Z_ISREF_P(_z3))                          \
 +                       && UNEXPECTED(Z_REFCOUNT_P(_z3) == 1)) {       \
 +                              ZVAL_UNREF(_z3);                                                \
 +                              if (Z_REFCOUNTED_P(_z3)) {                              \
 +                                      Z_ADDREF_P(_z3);                                        \
 +                              }                                                                               \
 +                      } else {                                                                        \
 +                              Z_ADDREF_P(_z3);                                                \
 +                      }                                                                                       \
 +              }                                                                                               \
 +              ZVAL_COPY_VALUE(z, _z3);                                                \
 +      } while (0)
 +
 +
  #define SEPARATE_STRING(zv) do {                                              \
                zval *_zv = (zv);                                                               \
-               if (Z_REFCOUNTED_P(_zv) &&                                              \
-                   Z_REFCOUNT_P(_zv) > 1) {                                    \
-                       Z_DELREF_P(_zv);                                                        \
+               if (Z_REFCOUNT_P(_zv) > 1) {                                    \
+                       if (Z_REFCOUNTED_P(_zv));                                       \
+                               Z_DELREF_P(_zv);                                                \
+                       }                                                                                       \
                        zval_copy_ctor_func(_zv);                                       \
                }                                                                                               \
        } while (0)