Copy default properties of internal classes for different threads
authorJohannes Schlüter <johannes@schlueters.de>
Thu, 5 Apr 2012 16:46:52 +0000 (18:46 +0200)
committerStanislav Malyshev <stas@php.net>
Thu, 12 Apr 2012 02:21:41 +0000 (19:21 -0700)
Zend/zend_API.c

index 71feccf9fffe41b3a40b85e0c4b5cb557e1ffe0d..98a33e544508f85ece7b9f4f4256c83010bdb4b0 100644 (file)
@@ -1093,7 +1093,12 @@ ZEND_API void object_properties_init(zend_object *object, zend_class_entry *clas
                for (i = 0; i < class_type->default_properties_count; i++) {
                        object->properties_table[i] = class_type->default_properties_table[i];
                        if (class_type->default_properties_table[i]) {
+#if ZTS
+                               ALLOC_ZVAL( object->properties_table[i]);
+                               MAKE_COPY_ZVAL(&class_type->default_properties_table[i], object->properties_table[i]);
+#else
                                Z_ADDREF_P(object->properties_table[i]);
+#endif
                        }
                }
                object->properties = NULL;