]> granicus.if.org Git - php/commitdiff
Wrap functions necessary only for ZTS build with #ifdef
authorDmitry Stogov <dmitry@zend.com>
Thu, 7 Dec 2017 08:59:58 +0000 (11:59 +0300)
committerDmitry Stogov <dmitry@zend.com>
Thu, 7 Dec 2017 08:59:58 +0000 (11:59 +0300)
Zend/zend_constants.c
Zend/zend_constants.h

index 6e96ce7fc97b78b0d7023399fb78560e5771555d..1eda6daefd5e1486b4e1840b7d57cd3e4d642432 100644 (file)
@@ -44,21 +44,19 @@ void free_zend_constant(zval *zv)
 }
 
 
+#ifdef ZTS
 static void copy_zend_constant(zval *zv)
 {
        zend_constant *c = Z_PTR_P(zv);
 
-       Z_PTR_P(zv) = pemalloc(sizeof(zend_constant), c->flags & CONST_PERSISTENT);
+       ZEND_ASSERT(c->flags & CONST_PERSISTENT);
+       Z_PTR_P(zv) = pemalloc(sizeof(zend_constant), 1);
        memcpy(Z_PTR_P(zv), c, sizeof(zend_constant));
 
        c = Z_PTR_P(zv);
        c->name = zend_string_copy(c->name);
-       if (!(c->flags & CONST_PERSISTENT)) {
-               zval_copy_ctor(&c->value);
-       } else {
-               if (Z_TYPE(c->value) == IS_STRING) {
-                       Z_STR(c->value) = zend_string_dup(Z_STR(c->value), 1);
-               }
+       if (Z_TYPE(c->value) == IS_STRING) {
+               Z_STR(c->value) = zend_string_dup(Z_STR(c->value), 1);
        }
 }
 
@@ -67,6 +65,7 @@ void zend_copy_constants(HashTable *target, HashTable *source)
 {
        zend_hash_copy(target, source, copy_zend_constant);
 }
+#endif
 
 
 static int clean_module_constant(zval *el, void *arg)
index 3bbe9a81da81855967f322bd2f75f50181fb5973..fae72e5bf975389d5ae654eeea9c12de036d3bd3 100644 (file)
@@ -75,7 +75,9 @@ ZEND_API void zend_register_double_constant(const char *name, size_t name_len, d
 ZEND_API void zend_register_string_constant(const char *name, size_t name_len, char *strval, int flags, int module_number);
 ZEND_API void zend_register_stringl_constant(const char *name, size_t name_len, char *strval, size_t strlen, int flags, int module_number);
 ZEND_API int zend_register_constant(zend_constant *c);
+#ifdef ZTS
 void zend_copy_constants(HashTable *target, HashTable *sourc);
+#endif
 ZEND_API zend_constant* ZEND_FASTCALL zend_quick_get_constant(const zval *key, uint32_t flags);
 END_EXTERN_C()