diff --git a/ext/spl/spl_observer.c b/ext/spl/spl_observer.c index 5222fe2a7fa4d..af9c598f08b08 100644 --- a/ext/spl/spl_observer.c +++ b/ext/spl/spl_observer.c @@ -257,8 +257,7 @@ static zend_object *spl_object_storage_new_ex(zend_class_entry *class_type, zend spl_SplObjectStorage *intern; zend_class_entry *parent = class_type; - intern = emalloc(sizeof(spl_SplObjectStorage) + zend_object_properties_size(parent)); - memset(intern, 0, sizeof(spl_SplObjectStorage) - sizeof(zval)); + intern = zend_object_alloc(sizeof(spl_SplObjectStorage), parent); intern->pos = 0; zend_object_std_init(&intern->std, class_type);