summaryrefslogtreecommitdiff
path: root/Zend/zend_objects.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-04-07 12:14:44 +0400
committerDmitry Stogov <dmitry@zend.com>2014-04-07 12:14:44 +0400
commitdf7293b07250360f9e9cb113bab54618d1a26881 (patch)
tree03075fc48b464f5a15a4b8cc76761fda98533032 /Zend/zend_objects.c
parent8b2bb3013733fd465f8dbe24ffac8418e737463b (diff)
downloadphp-git-df7293b07250360f9e9cb113bab54618d1a26881.tar.gz
don't use memset() for array of zval initialization
Diffstat (limited to 'Zend/zend_objects.c')
-rw-r--r--Zend/zend_objects.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c
index bf985b12bc..35b237e132 100644
--- a/Zend/zend_objects.c
+++ b/Zend/zend_objects.c
@@ -33,8 +33,16 @@ ZEND_API void zend_object_std_init(zend_object *object, zend_class_entry *ce TSR
object->ce = ce;
object->properties = NULL;
object->guards = NULL;
- memset(object->properties_table, 0, sizeof(zval) * ce->default_properties_count);
zend_objects_store_put(object);
+ if (EXPECTED(ce->default_properties_count != 0)) {
+ zval *p = object->properties_table;
+ zval *end = p + ce->default_properties_count;
+
+ do {
+ ZVAL_UNDEF(p);
+ p++;
+ } while (p != end);
+ }
}
ZEND_API void zend_object_std_dtor(zend_object *object TSRMLS_DC)