summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schlüter <johannes@schlueters.de>2012-04-05 18:46:52 +0200
committerStanislav Malyshev <stas@php.net>2012-04-11 20:21:59 -0700
commitea3e0d5a7370df63af9372780b91a749fda773b1 (patch)
tree7053357781ef2bbcd0615ab9a54e531e23e180bf
parent7495c5e1d404d251d8c9c521fd80c85cd4e2fad1 (diff)
downloadphp-git-ea3e0d5a7370df63af9372780b91a749fda773b1.tar.gz
Copy default properties of internal classes for different threads
-rw-r--r--Zend/zend_API.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 71feccf9ff..98a33e5445 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -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;