Skip to content

Commit b72b1a4

Browse files
committed
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.
1 parent 8795893 commit b72b1a4

File tree

31 files changed

+53
-59
lines changed

31 files changed

+53
-59
lines changed

Zend/zend_objects_API.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,15 @@ static zend_always_inline size_t zend_object_properties_size(zend_class_entry *c
8686
((ce->ce_flags & ZEND_ACC_USE_GUARDS) ? 0 : 1));
8787
}
8888

89+
/* Allocates object type and zeros it, but not the properties.
90+
* Properties MUST be initialized using object_properties_init(). */
91+
static zend_always_inline void *zend_object_alloc(size_t obj_size, zend_class_entry *ce) {
92+
void *obj = emalloc(obj_size + zend_object_properties_size(ce));
93+
memset(obj, 0, obj_size);
94+
return obj;
95+
}
96+
97+
8998
#endif /* ZEND_OBJECTS_H */
9099

91100
/*

ext/date/php_date.c

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2187,9 +2187,7 @@ static void date_register_classes(void) /* {{{ */
21872187

21882188
static inline zend_object *date_object_new_date_ex(zend_class_entry *class_type, int init_props) /* {{{ */
21892189
{
2190-
php_date_obj *intern;
2191-
2192-
intern = ecalloc(1, sizeof(php_date_obj) + zend_object_properties_size(class_type));
2190+
php_date_obj *intern = zend_object_alloc(sizeof(php_date_obj), class_type);
21932191

21942192
zend_object_std_init(&intern->std, class_type);
21952193
if (init_props) {
@@ -2318,9 +2316,7 @@ static HashTable *date_object_get_properties(zval *object) /* {{{ */
23182316

23192317
static inline zend_object *date_object_new_timezone_ex(zend_class_entry *class_type, int init_props) /* {{{ */
23202318
{
2321-
php_timezone_obj *intern;
2322-
2323-
intern = ecalloc(1, sizeof(php_timezone_obj) + zend_object_properties_size(class_type));
2319+
php_timezone_obj *intern = zend_object_alloc(sizeof(php_timezone_obj), class_type);
23242320

23252321
zend_object_std_init(&intern->std, class_type);
23262322
if (init_props) {
@@ -2409,9 +2405,7 @@ static HashTable *date_object_get_properties_timezone(zval *object) /* {{{ */
24092405

24102406
static inline zend_object *date_object_new_interval_ex(zend_class_entry *class_type, int init_props) /* {{{ */
24112407
{
2412-
php_interval_obj *intern;
2413-
2414-
intern = ecalloc(1, sizeof(php_interval_obj) + zend_object_properties_size(class_type));
2408+
php_interval_obj *intern = zend_object_alloc(sizeof(php_interval_obj), class_type);
24152409

24162410
zend_object_std_init(&intern->std, class_type);
24172411
if (init_props) {
@@ -2495,9 +2489,7 @@ static HashTable *date_object_get_properties_interval(zval *object) /* {{{ */
24952489

24962490
static inline zend_object *date_object_new_period_ex(zend_class_entry *class_type, int init_props) /* {{{ */
24972491
{
2498-
php_period_obj *intern;
2499-
2500-
intern = ecalloc(1, sizeof(php_period_obj) + zend_object_properties_size(class_type));
2492+
php_period_obj *intern = zend_object_alloc(sizeof(php_period_obj), class_type);
25012493

25022494
zend_object_std_init(&intern->std, class_type);
25032495
if (init_props) {

ext/dom/php_dom.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,7 +1075,7 @@ void dom_namednode_iter(dom_object *basenode, int ntype, dom_object *intern, xml
10751075

10761076
static dom_object* dom_objects_set_class(zend_class_entry *class_type, zend_bool hash_copy) /* {{{ */
10771077
{
1078-
dom_object *intern = ecalloc(1, sizeof(dom_object) + zend_object_properties_size(class_type));
1078+
dom_object *intern = zend_object_alloc(sizeof(dom_object), class_type);
10791079

10801080
zend_class_entry *base_class = class_type;
10811081
while ((base_class->type != ZEND_INTERNAL_CLASS || base_class->info.internal.module->module_number != dom_module_entry.module_number) && base_class->parent != NULL) {
@@ -1106,7 +1106,7 @@ zend_object *dom_objects_new(zend_class_entry *class_type)
11061106
/* {{{ zend_object dom_xpath_objects_new(zend_class_entry *class_type) */
11071107
zend_object *dom_xpath_objects_new(zend_class_entry *class_type)
11081108
{
1109-
dom_xpath_object *intern = ecalloc(1, sizeof(dom_xpath_object) + zend_object_properties_size(class_type));
1109+
dom_xpath_object *intern = zend_object_alloc(sizeof(dom_xpath_object), class_type);
11101110

11111111
intern->registered_phpfunctions = zend_new_array(0);
11121112

ext/fileinfo/fileinfo.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ PHP_FILEINFO_API zend_object *finfo_objects_new(zend_class_entry *class_type)
100100
{
101101
finfo_object *intern;
102102

103-
intern = ecalloc(1, sizeof(finfo_object) + zend_object_properties_size(class_type));
103+
intern = zend_object_alloc(sizeof(finfo_object), class_type);
104104

105105
zend_object_std_init(&intern->zo, class_type);
106106
object_properties_init(&intern->zo, class_type);

ext/hash/hash.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1106,11 +1106,11 @@ PHP_FUNCTION(mhash_keygen_s2k)
11061106

11071107
/* {{{ php_hashcontext_create */
11081108
static zend_object* php_hashcontext_create(zend_class_entry *ce) {
1109-
php_hashcontext_object *objval = ecalloc(1,
1110-
sizeof(php_hashcontext_object) + zend_object_properties_size(ce));
1111-
zend_object *zobj = &(objval->std);
1109+
php_hashcontext_object *objval = zend_object_alloc(sizeof(php_hashcontext_object), ce);
1110+
zend_object *zobj = &objval->std;
11121111

11131112
zend_object_std_init(zobj, ce);
1113+
object_properties_init(zobj, ce);
11141114
zobj->handlers = &php_hashcontext_handlers;
11151115

11161116
return zobj;

ext/intl/collator/collator_class.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@ void Collator_objects_free(zend_object *object )
4949
/* {{{ Collator_object_create */
5050
zend_object *Collator_object_create(zend_class_entry *ce )
5151
{
52-
Collator_object* intern;
53-
54-
intern = ecalloc(1, sizeof(Collator_object) + zend_object_properties_size(ce));
52+
Collator_object *intern = zend_object_alloc(sizeof(Collator_object), ce);
5553
intl_error_init(COLLATOR_ERROR_P(intern));
5654
zend_object_std_init(&intern->zo, ce );
5755
object_properties_init(&intern->zo, ce);

ext/intl/converter/converter.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,9 +1018,10 @@ static void php_converter_dtor_object(zend_object *obj) {
10181018
static zend_object *php_converter_object_ctor(zend_class_entry *ce, php_converter_object **pobjval) {
10191019
php_converter_object *objval;
10201020

1021-
objval = ecalloc(1, sizeof(php_converter_object) + zend_object_properties_size(ce));
1021+
objval = zend_object_alloc(sizeof(php_converter_object), ce);
10221022

1023-
zend_object_std_init(&objval->obj, ce );
1023+
zend_object_std_init(&objval->obj, ce);
1024+
object_properties_init(&objval->obj, ce);
10241025
intl_error_init(&(objval->error));
10251026

10261027
objval->obj.handlers = &php_converter_object_handlers;

ext/intl/dateformat/dateformat_class.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ zend_object *IntlDateFormatter_object_create(zend_class_entry *ce)
6161
{
6262
IntlDateFormatter_object* intern;
6363

64-
intern = ecalloc( 1, sizeof(IntlDateFormatter_object) + zend_object_properties_size(ce));
64+
intern = zend_object_alloc(sizeof(IntlDateFormatter_object), ce);
6565
dateformat_data_init( &intern->datef_data );
6666
zend_object_std_init( &intern->zo, ce );
6767
object_properties_init(&intern->zo, ce);
@@ -70,7 +70,6 @@ zend_object *IntlDateFormatter_object_create(zend_class_entry *ce)
7070
intern->calendar = -1;
7171
intern->requested_locale = NULL;
7272

73-
7473
intern->zo.handlers = &IntlDateFormatter_handlers;
7574

7675
return &intern->zo;

ext/intl/formatter/formatter_class.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ zend_object *NumberFormatter_object_create(zend_class_entry *ce)
4949
{
5050
NumberFormatter_object* intern;
5151

52-
intern = ecalloc( 1, sizeof(NumberFormatter_object) + zend_object_properties_size(ce));
52+
intern = zend_object_alloc(sizeof(NumberFormatter_object), ce);
5353
formatter_data_init( &intern->nf_data );
5454
zend_object_std_init( &intern->zo, ce );
5555
object_properties_init(&intern->zo, ce);

ext/intl/msgformat/msgformat_class.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ zend_object *MessageFormatter_object_create(zend_class_entry *ce)
4949
{
5050
MessageFormatter_object* intern;
5151

52-
intern = ecalloc( 1, sizeof(MessageFormatter_object) + zend_object_properties_size(ce));
52+
intern = zend_object_alloc(sizeof(MessageFormatter_object), ce);
5353
msgformat_data_init( &intern->mf_data );
5454
zend_object_std_init( &intern->zo, ce );
5555
object_properties_init(&intern->zo, ce);

ext/intl/resourcebundle/resourcebundle_class.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ static zend_object *ResourceBundle_object_create( zend_class_entry *ce )
5757
{
5858
ResourceBundle_object *rb;
5959

60-
rb = ecalloc( 1, sizeof(ResourceBundle_object) + zend_object_properties_size(ce));
60+
rb = zend_object_alloc(sizeof(ResourceBundle_object), ce);
6161

6262
zend_object_std_init( &rb->zend, ce );
6363
object_properties_init( &rb->zend, ce);

ext/intl/spoofchecker/spoofchecker_class.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,11 @@ void Spoofchecker_objects_free(zend_object *object)
4141
/* }}} */
4242

4343
/* {{{ Spoofchecker_object_create */
44-
zend_object *Spoofchecker_object_create(
45-
zend_class_entry *ce)
44+
zend_object *Spoofchecker_object_create(zend_class_entry *ce)
4645
{
4746
Spoofchecker_object* intern;
4847

49-
intern = ecalloc(1, sizeof(Spoofchecker_object) + zend_object_properties_size(ce));
48+
intern = zend_object_alloc(sizeof(Spoofchecker_object), ce);
5049
intl_error_init(SPOOFCHECKER_ERROR_P(intern));
5150
zend_object_std_init(&intern->zo, ce);
5251
object_properties_init(&intern->zo, ce);

ext/intl/transliterator/transliterator_class.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,11 @@ static void Transliterator_objects_free( zend_object *object )
109109
/* }}} */
110110

111111
/* {{{ Transliterator_object_create */
112-
static zend_object *Transliterator_object_create(
113-
zend_class_entry *ce )
112+
static zend_object *Transliterator_object_create( zend_class_entry *ce )
114113
{
115114
Transliterator_object* intern;
116115

117-
intern = ecalloc( 1, sizeof( Transliterator_object ) + zend_object_properties_size(ce));
116+
intern = zend_object_alloc(sizeof(Transliterator_object), ce);
118117

119118
zend_object_std_init( &intern->zo, ce );
120119
object_properties_init( &intern->zo, ce );

ext/mysqli/mysqli.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ PHP_MYSQLI_EXPORT(zend_object *) mysqli_objects_new(zend_class_entry *class_type
448448
zend_class_entry *mysqli_base_class;
449449
zend_object_handlers *handlers;
450450

451-
intern = ecalloc(1, sizeof(mysqli_object) + zend_object_properties_size(class_type));
451+
intern = zend_object_alloc(sizeof(mysqli_object), class_type);
452452

453453
mysqli_base_class = class_type;
454454
while (mysqli_base_class->type != ZEND_INTERNAL_CLASS &&

ext/pdo/pdo_dbh.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1554,7 +1554,7 @@ zend_object *pdo_dbh_new(zend_class_entry *ce)
15541554
{
15551555
pdo_dbh_object_t *dbh;
15561556

1557-
dbh = ecalloc(1, sizeof(pdo_dbh_object_t) + zend_object_properties_size(ce));
1557+
dbh = zend_object_alloc(sizeof(pdo_dbh_object_t), ce);
15581558
zend_object_std_init(&dbh->std, ce);
15591559
object_properties_init(&dbh->std, ce);
15601560
rebuild_object_properties(&dbh->std);

ext/pdo/pdo_stmt.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2267,7 +2267,7 @@ static zend_object *dbstmt_clone_obj(zval *zobject)
22672267
pdo_stmt_t *stmt;
22682268
pdo_stmt_t *old_stmt;
22692269

2270-
stmt = ecalloc(1, sizeof(pdo_stmt_t) + zend_object_properties_size(Z_OBJCE_P(zobject)));
2270+
stmt = zend_object_alloc(sizeof(pdo_stmt_t), Z_OBJCE_P(zobject));
22712271
zend_object_std_init(&stmt->std, Z_OBJCE_P(zobject));
22722272
object_properties_init(&stmt->std, Z_OBJCE_P(zobject));
22732273

@@ -2375,7 +2375,7 @@ zend_object *pdo_dbstmt_new(zend_class_entry *ce)
23752375
{
23762376
pdo_stmt_t *stmt;
23772377

2378-
stmt = ecalloc(1, sizeof(pdo_stmt_t) + zend_object_properties_size(ce));
2378+
stmt = zend_object_alloc(sizeof(pdo_stmt_t), ce);
23792379
zend_object_std_init(&stmt->std, ce);
23802380
object_properties_init(&stmt->std, ce);
23812381

ext/reflection/php_reflection.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -270,10 +270,7 @@ static HashTable *reflection_get_gc(zval *obj, zval **gc_data, int *gc_data_coun
270270

271271
static zend_object *reflection_objects_new(zend_class_entry *class_type) /* {{{ */
272272
{
273-
reflection_object *intern;
274-
275-
intern = ecalloc(1, sizeof(reflection_object) + zend_object_properties_size(class_type));
276-
intern->zo.ce = class_type;
273+
reflection_object *intern = zend_object_alloc(sizeof(reflection_object), class_type);
277274

278275
zend_object_std_init(&intern->zo, class_type);
279276
object_properties_init(&intern->zo, class_type);

ext/simplexml/simplexml.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2166,7 +2166,7 @@ static php_sxe_object* php_sxe_object_new(zend_class_entry *ce, zend_function *f
21662166
{
21672167
php_sxe_object *intern;
21682168

2169-
intern = ecalloc(1, sizeof(php_sxe_object) + zend_object_properties_size(ce));
2169+
intern = zend_object_alloc(sizeof(php_sxe_object), ce);
21702170

21712171
intern->iter.type = SXE_ITER_NONE;
21722172
intern->iter.nsprefix = NULL;

ext/snmp/snmp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ static zend_object *php_snmp_object_new(zend_class_entry *class_type) /* {{{ */
475475
php_snmp_object *intern;
476476

477477
/* Allocate memory for it */
478-
intern = ecalloc(1, sizeof(php_snmp_object) + zend_object_properties_size(class_type));
478+
intern = zend_object_alloc(sizeof(php_snmp_object), class_type);
479479

480480
zend_object_std_init(&intern->zo, class_type);
481481
object_properties_init(&intern->zo, class_type);

ext/spl/spl_array.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ static zend_object *spl_array_object_new_ex(zend_class_entry *class_type, zval *
173173
zend_class_entry *parent = class_type;
174174
int inherited = 0;
175175

176-
intern = ecalloc(1, sizeof(spl_array_object) + zend_object_properties_size(parent));
176+
intern = zend_object_alloc(sizeof(spl_array_object), parent);
177177

178178
zend_object_std_init(&intern->std, class_type);
179179
object_properties_init(&intern->std, class_type);

ext/spl/spl_directory.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ static zend_object *spl_filesystem_object_new_ex(zend_class_entry *class_type)
157157
{
158158
spl_filesystem_object *intern;
159159

160-
intern = ecalloc(1, sizeof(spl_filesystem_object) + zend_object_properties_size(class_type));
160+
intern = zend_object_alloc(sizeof(spl_filesystem_object), class_type);
161161
/* intern->type = SPL_FS_INFO; done by set 0 */
162162
intern->file_class = spl_ce_SplFileObject;
163163
intern->info_class = spl_ce_SplFileInfo;

ext/spl/spl_dllist.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ static zend_object *spl_dllist_object_new_ex(zend_class_entry *class_type, zval
373373
zend_class_entry *parent = class_type;
374374
int inherited = 0;
375375

376-
intern = ecalloc(1, sizeof(spl_dllist_object) + zend_object_properties_size(parent));
376+
intern = zend_object_alloc(sizeof(spl_dllist_object), parent);
377377

378378
zend_object_std_init(&intern->std, class_type);
379379
object_properties_init(&intern->std, class_type);

ext/spl/spl_fixedarray.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ static zend_object *spl_fixedarray_object_new_ex(zend_class_entry *class_type, z
210210
zend_class_entry *parent = class_type;
211211
int inherited = 0;
212212

213-
intern = ecalloc(1, sizeof(spl_fixedarray_object) + zend_object_properties_size(parent));
213+
intern = zend_object_alloc(sizeof(spl_fixedarray_object), parent);
214214

215215
zend_object_std_init(&intern->std, class_type);
216216
object_properties_init(&intern->std, class_type);

ext/spl/spl_heap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ static zend_object *spl_heap_object_new_ex(zend_class_entry *class_type, zval *o
363363
zend_class_entry *parent = class_type;
364364
int inherited = 0;
365365

366-
intern = ecalloc(1, sizeof(spl_heap_object) + zend_object_properties_size(parent));
366+
intern = zend_object_alloc(sizeof(spl_heap_object), parent);
367367

368368
zend_object_std_init(&intern->std, class_type);
369369
object_properties_init(&intern->std, class_type);

ext/spl/spl_iterators.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -961,7 +961,7 @@ static zend_object *spl_RecursiveIteratorIterator_new_ex(zend_class_entry *class
961961
{
962962
spl_recursive_it_object *intern;
963963

964-
intern = ecalloc(1, sizeof(spl_recursive_it_object) + zend_object_properties_size(class_type));
964+
intern = zend_object_alloc(sizeof(spl_recursive_it_object), class_type);
965965

966966
if (init_prefix) {
967967
smart_str_appendl(&intern->prefix[0], "", 0);
@@ -2360,7 +2360,7 @@ static zend_object *spl_dual_it_new(zend_class_entry *class_type)
23602360
{
23612361
spl_dual_it_object *intern;
23622362

2363-
intern = ecalloc(1, sizeof(spl_dual_it_object) + zend_object_properties_size(class_type));
2363+
intern = zend_object_alloc(sizeof(spl_dual_it_object), class_type);
23642364
intern->dit_type = DIT_Unknown;
23652365

23662366
zend_object_std_init(&intern->std, class_type);

ext/sqlite3/sqlite3.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2204,7 +2204,7 @@ static zend_object *php_sqlite3_object_new(zend_class_entry *class_type) /* {{{
22042204
php_sqlite3_db_object *intern;
22052205

22062206
/* Allocate memory for it */
2207-
intern = ecalloc(1, sizeof(php_sqlite3_db_object) + zend_object_properties_size(class_type));
2207+
intern = zend_object_alloc(sizeof(php_sqlite3_db_object), class_type);
22082208

22092209
/* Need to keep track of things to free */
22102210
zend_llist_init(&(intern->free_list), sizeof(php_sqlite3_free_list *), (llist_dtor_func_t)php_sqlite3_free_list_dtor, 0);
@@ -2223,7 +2223,7 @@ static zend_object *php_sqlite3_stmt_object_new(zend_class_entry *class_type) /*
22232223
php_sqlite3_stmt *intern;
22242224

22252225
/* Allocate memory for it */
2226-
intern = ecalloc(1, sizeof(php_sqlite3_stmt) + zend_object_properties_size(class_type));
2226+
intern = zend_object_alloc(sizeof(php_sqlite3_stmt), class_type);
22272227

22282228
zend_object_std_init(&intern->zo, class_type);
22292229
object_properties_init(&intern->zo, class_type);
@@ -2239,7 +2239,7 @@ static zend_object *php_sqlite3_result_object_new(zend_class_entry *class_type)
22392239
php_sqlite3_result *intern;
22402240

22412241
/* Allocate memory for it */
2242-
intern = ecalloc(1, sizeof(php_sqlite3_result) + zend_object_properties_size(class_type));
2242+
intern = zend_object_alloc(sizeof(php_sqlite3_result), class_type);
22432243

22442244
zend_object_std_init(&intern->zo, class_type);
22452245
object_properties_init(&intern->zo, class_type);

ext/tidy/tidy.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,7 @@ static zend_object *tidy_object_new(zend_class_entry *class_type, zend_object_ha
685685
{
686686
PHPTidyObj *intern;
687687

688-
intern = ecalloc(1, sizeof(PHPTidyObj) + zend_object_properties_size(class_type));
688+
intern = zend_object_alloc(sizeof(PHPTidyObj), class_type);
689689
zend_object_std_init(&intern->std, class_type);
690690
object_properties_init(&intern->std, class_type);
691691

ext/xmlreader/php_xmlreader.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ zend_object *xmlreader_objects_new(zend_class_entry *class_type)
389389
{
390390
xmlreader_object *intern;
391391

392-
intern = ecalloc(1, sizeof(xmlreader_object) + zend_object_properties_size(class_type));
392+
intern = zend_object_alloc(sizeof(xmlreader_object), class_type);
393393
zend_object_std_init(&intern->std, class_type);
394394
object_properties_init(&intern->std, class_type);
395395
intern->prop_handler = &xmlreader_prop_handlers;

ext/xmlwriter/php_xmlwriter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ static zend_object *xmlwriter_object_new(zend_class_entry *class_type)
141141
{
142142
ze_xmlwriter_object *intern;
143143

144-
intern = ecalloc(1, sizeof(ze_xmlwriter_object) + zend_object_properties_size(class_type));
144+
intern = zend_object_alloc(sizeof(ze_xmlwriter_object), class_type);
145145
zend_object_std_init(&intern->std, class_type);
146146
object_properties_init(&intern->std, class_type);
147147
intern->std.handlers = &xmlwriter_object_handlers;

ext/xsl/php_xsl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ zend_object *xsl_objects_new(zend_class_entry *class_type)
108108
{
109109
xsl_object *intern;
110110

111-
intern = ecalloc(1, sizeof(xsl_object) + zend_object_properties_size(class_type));
111+
intern = zend_object_alloc(sizeof(xsl_object), class_type);
112112
intern->securityPrefs = XSL_SECPREF_DEFAULT;
113113

114114
zend_object_std_init(&intern->std, class_type);

0 commit comments

Comments
 (0)