summaryrefslogtreecommitdiff
path: root/ext/intl/transliterator/transliterator_class.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2017-11-25 16:07:51 +0100
committerNikita Popov <nikita.ppv@gmail.com>2017-11-25 17:12:37 +0100
commitb72b1a4e4d4a94a16b953bf8d826885efb56eeca (patch)
treed79e5390c77d3a5218f39262f2205280dacb8bf7 /ext/intl/transliterator/transliterator_class.c
parent8795893f4f90a344cc9a9d48523b7aa0ba5ebf05 (diff)
downloadphp-git-b72b1a4e4d4a94a16b953bf8d826885efb56eeca.tar.gz
Add zend_object_alloc() API
Using ecalloc() to create objects is expensive, because the dynamic-size memset() is unreasonably slow. Make sure we only zero the main object structure with known size, as the properties are intialized separately anyway. Technically we do not need to zero the embedded zend_object structure either, but as long as the memset argument is constant, a couple more bytes don't really matter.
Diffstat (limited to 'ext/intl/transliterator/transliterator_class.c')
-rw-r--r--ext/intl/transliterator/transliterator_class.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/ext/intl/transliterator/transliterator_class.c b/ext/intl/transliterator/transliterator_class.c
index 9eb2304c5e..ca174e2e70 100644
--- a/ext/intl/transliterator/transliterator_class.c
+++ b/ext/intl/transliterator/transliterator_class.c
@@ -109,12 +109,11 @@ static void Transliterator_objects_free( zend_object *object )
/* }}} */
/* {{{ Transliterator_object_create */
-static zend_object *Transliterator_object_create(
- zend_class_entry *ce )
+static zend_object *Transliterator_object_create( zend_class_entry *ce )
{
Transliterator_object* intern;
- intern = ecalloc( 1, sizeof( Transliterator_object ) + zend_object_properties_size(ce));
+ intern = zend_object_alloc(sizeof(Transliterator_object), ce);
zend_object_std_init( &intern->zo, ce );
object_properties_init( &intern->zo, ce );