((ce->ce_flags & ZEND_ACC_USE_GUARDS) ? 0 : 1));
}
+/* Allocates object type and zeros it, but not the properties.
+ * Properties MUST be initialized using object_properties_init(). */
+static zend_always_inline void *zend_object_alloc(size_t obj_size, zend_class_entry *ce) {
+ void *obj = emalloc(obj_size + zend_object_properties_size(ce));
+ memset(obj, 0, obj_size);
+ return obj;
+}
+
+
#endif /* ZEND_OBJECTS_H */
/*
static inline zend_object *date_object_new_date_ex(zend_class_entry *class_type, int init_props) /* {{{ */
{
- php_date_obj *intern;
-
- intern = ecalloc(1, sizeof(php_date_obj) + zend_object_properties_size(class_type));
+ php_date_obj *intern = zend_object_alloc(sizeof(php_date_obj), class_type);
zend_object_std_init(&intern->std, class_type);
if (init_props) {
static inline zend_object *date_object_new_timezone_ex(zend_class_entry *class_type, int init_props) /* {{{ */
{
- php_timezone_obj *intern;
-
- intern = ecalloc(1, sizeof(php_timezone_obj) + zend_object_properties_size(class_type));
+ php_timezone_obj *intern = zend_object_alloc(sizeof(php_timezone_obj), class_type);
zend_object_std_init(&intern->std, class_type);
if (init_props) {
static inline zend_object *date_object_new_interval_ex(zend_class_entry *class_type, int init_props) /* {{{ */
{
- php_interval_obj *intern;
-
- intern = ecalloc(1, sizeof(php_interval_obj) + zend_object_properties_size(class_type));
+ php_interval_obj *intern = zend_object_alloc(sizeof(php_interval_obj), class_type);
zend_object_std_init(&intern->std, class_type);
if (init_props) {
static inline zend_object *date_object_new_period_ex(zend_class_entry *class_type, int init_props) /* {{{ */
{
- php_period_obj *intern;
-
- intern = ecalloc(1, sizeof(php_period_obj) + zend_object_properties_size(class_type));
+ php_period_obj *intern = zend_object_alloc(sizeof(php_period_obj), class_type);
zend_object_std_init(&intern->std, class_type);
if (init_props) {
static dom_object* dom_objects_set_class(zend_class_entry *class_type, zend_bool hash_copy) /* {{{ */
{
- dom_object *intern = ecalloc(1, sizeof(dom_object) + zend_object_properties_size(class_type));
+ dom_object *intern = zend_object_alloc(sizeof(dom_object), class_type);
zend_class_entry *base_class = class_type;
while ((base_class->type != ZEND_INTERNAL_CLASS || base_class->info.internal.module->module_number != dom_module_entry.module_number) && base_class->parent != NULL) {
/* {{{ zend_object dom_xpath_objects_new(zend_class_entry *class_type) */
zend_object *dom_xpath_objects_new(zend_class_entry *class_type)
{
- dom_xpath_object *intern = ecalloc(1, sizeof(dom_xpath_object) + zend_object_properties_size(class_type));
+ dom_xpath_object *intern = zend_object_alloc(sizeof(dom_xpath_object), class_type);
intern->registered_phpfunctions = zend_new_array(0);
{
finfo_object *intern;
- intern = ecalloc(1, sizeof(finfo_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(finfo_object), class_type);
zend_object_std_init(&intern->zo, class_type);
object_properties_init(&intern->zo, class_type);
/* {{{ php_hashcontext_create */
static zend_object* php_hashcontext_create(zend_class_entry *ce) {
- php_hashcontext_object *objval = ecalloc(1,
- sizeof(php_hashcontext_object) + zend_object_properties_size(ce));
- zend_object *zobj = &(objval->std);
+ php_hashcontext_object *objval = zend_object_alloc(sizeof(php_hashcontext_object), ce);
+ zend_object *zobj = &objval->std;
zend_object_std_init(zobj, ce);
+ object_properties_init(zobj, ce);
zobj->handlers = &php_hashcontext_handlers;
return zobj;
/* {{{ Collator_object_create */
zend_object *Collator_object_create(zend_class_entry *ce )
{
- Collator_object* intern;
-
- intern = ecalloc(1, sizeof(Collator_object) + zend_object_properties_size(ce));
+ Collator_object *intern = zend_object_alloc(sizeof(Collator_object), ce);
intl_error_init(COLLATOR_ERROR_P(intern));
zend_object_std_init(&intern->zo, ce );
object_properties_init(&intern->zo, ce);
static zend_object *php_converter_object_ctor(zend_class_entry *ce, php_converter_object **pobjval) {
php_converter_object *objval;
- objval = ecalloc(1, sizeof(php_converter_object) + zend_object_properties_size(ce));
+ objval = zend_object_alloc(sizeof(php_converter_object), ce);
- zend_object_std_init(&objval->obj, ce );
+ zend_object_std_init(&objval->obj, ce);
+ object_properties_init(&objval->obj, ce);
intl_error_init(&(objval->error));
objval->obj.handlers = &php_converter_object_handlers;
{
IntlDateFormatter_object* intern;
- intern = ecalloc( 1, sizeof(IntlDateFormatter_object) + zend_object_properties_size(ce));
+ intern = zend_object_alloc(sizeof(IntlDateFormatter_object), ce);
dateformat_data_init( &intern->datef_data );
zend_object_std_init( &intern->zo, ce );
object_properties_init(&intern->zo, ce);
intern->calendar = -1;
intern->requested_locale = NULL;
-
intern->zo.handlers = &IntlDateFormatter_handlers;
return &intern->zo;
{
NumberFormatter_object* intern;
- intern = ecalloc( 1, sizeof(NumberFormatter_object) + zend_object_properties_size(ce));
+ intern = zend_object_alloc(sizeof(NumberFormatter_object), ce);
formatter_data_init( &intern->nf_data );
zend_object_std_init( &intern->zo, ce );
object_properties_init(&intern->zo, ce);
{
MessageFormatter_object* intern;
- intern = ecalloc( 1, sizeof(MessageFormatter_object) + zend_object_properties_size(ce));
+ intern = zend_object_alloc(sizeof(MessageFormatter_object), ce);
msgformat_data_init( &intern->mf_data );
zend_object_std_init( &intern->zo, ce );
object_properties_init(&intern->zo, ce);
{
ResourceBundle_object *rb;
- rb = ecalloc( 1, sizeof(ResourceBundle_object) + zend_object_properties_size(ce));
+ rb = zend_object_alloc(sizeof(ResourceBundle_object), ce);
zend_object_std_init( &rb->zend, ce );
object_properties_init( &rb->zend, ce);
/* }}} */
/* {{{ Spoofchecker_object_create */
-zend_object *Spoofchecker_object_create(
- zend_class_entry *ce)
+zend_object *Spoofchecker_object_create(zend_class_entry *ce)
{
Spoofchecker_object* intern;
- intern = ecalloc(1, sizeof(Spoofchecker_object) + zend_object_properties_size(ce));
+ intern = zend_object_alloc(sizeof(Spoofchecker_object), ce);
intl_error_init(SPOOFCHECKER_ERROR_P(intern));
zend_object_std_init(&intern->zo, ce);
object_properties_init(&intern->zo, ce);
/* }}} */
/* {{{ 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 );
zend_class_entry *mysqli_base_class;
zend_object_handlers *handlers;
- intern = ecalloc(1, sizeof(mysqli_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(mysqli_object), class_type);
mysqli_base_class = class_type;
while (mysqli_base_class->type != ZEND_INTERNAL_CLASS &&
{
pdo_dbh_object_t *dbh;
- dbh = ecalloc(1, sizeof(pdo_dbh_object_t) + zend_object_properties_size(ce));
+ dbh = zend_object_alloc(sizeof(pdo_dbh_object_t), ce);
zend_object_std_init(&dbh->std, ce);
object_properties_init(&dbh->std, ce);
rebuild_object_properties(&dbh->std);
pdo_stmt_t *stmt;
pdo_stmt_t *old_stmt;
- stmt = ecalloc(1, sizeof(pdo_stmt_t) + zend_object_properties_size(Z_OBJCE_P(zobject)));
+ stmt = zend_object_alloc(sizeof(pdo_stmt_t), Z_OBJCE_P(zobject));
zend_object_std_init(&stmt->std, Z_OBJCE_P(zobject));
object_properties_init(&stmt->std, Z_OBJCE_P(zobject));
{
pdo_stmt_t *stmt;
- stmt = ecalloc(1, sizeof(pdo_stmt_t) + zend_object_properties_size(ce));
+ stmt = zend_object_alloc(sizeof(pdo_stmt_t), ce);
zend_object_std_init(&stmt->std, ce);
object_properties_init(&stmt->std, ce);
static zend_object *reflection_objects_new(zend_class_entry *class_type) /* {{{ */
{
- reflection_object *intern;
-
- intern = ecalloc(1, sizeof(reflection_object) + zend_object_properties_size(class_type));
- intern->zo.ce = class_type;
+ reflection_object *intern = zend_object_alloc(sizeof(reflection_object), class_type);
zend_object_std_init(&intern->zo, class_type);
object_properties_init(&intern->zo, class_type);
{
php_sxe_object *intern;
- intern = ecalloc(1, sizeof(php_sxe_object) + zend_object_properties_size(ce));
+ intern = zend_object_alloc(sizeof(php_sxe_object), ce);
intern->iter.type = SXE_ITER_NONE;
intern->iter.nsprefix = NULL;
php_snmp_object *intern;
/* Allocate memory for it */
- intern = ecalloc(1, sizeof(php_snmp_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(php_snmp_object), class_type);
zend_object_std_init(&intern->zo, class_type);
object_properties_init(&intern->zo, class_type);
zend_class_entry *parent = class_type;
int inherited = 0;
- intern = ecalloc(1, sizeof(spl_array_object) + zend_object_properties_size(parent));
+ intern = zend_object_alloc(sizeof(spl_array_object), parent);
zend_object_std_init(&intern->std, class_type);
object_properties_init(&intern->std, class_type);
{
spl_filesystem_object *intern;
- intern = ecalloc(1, sizeof(spl_filesystem_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(spl_filesystem_object), class_type);
/* intern->type = SPL_FS_INFO; done by set 0 */
intern->file_class = spl_ce_SplFileObject;
intern->info_class = spl_ce_SplFileInfo;
zend_class_entry *parent = class_type;
int inherited = 0;
- intern = ecalloc(1, sizeof(spl_dllist_object) + zend_object_properties_size(parent));
+ intern = zend_object_alloc(sizeof(spl_dllist_object), parent);
zend_object_std_init(&intern->std, class_type);
object_properties_init(&intern->std, class_type);
zend_class_entry *parent = class_type;
int inherited = 0;
- intern = ecalloc(1, sizeof(spl_fixedarray_object) + zend_object_properties_size(parent));
+ intern = zend_object_alloc(sizeof(spl_fixedarray_object), parent);
zend_object_std_init(&intern->std, class_type);
object_properties_init(&intern->std, class_type);
zend_class_entry *parent = class_type;
int inherited = 0;
- intern = ecalloc(1, sizeof(spl_heap_object) + zend_object_properties_size(parent));
+ intern = zend_object_alloc(sizeof(spl_heap_object), parent);
zend_object_std_init(&intern->std, class_type);
object_properties_init(&intern->std, class_type);
{
spl_recursive_it_object *intern;
- intern = ecalloc(1, sizeof(spl_recursive_it_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(spl_recursive_it_object), class_type);
if (init_prefix) {
smart_str_appendl(&intern->prefix[0], "", 0);
{
spl_dual_it_object *intern;
- intern = ecalloc(1, sizeof(spl_dual_it_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(spl_dual_it_object), class_type);
intern->dit_type = DIT_Unknown;
zend_object_std_init(&intern->std, class_type);
php_sqlite3_db_object *intern;
/* Allocate memory for it */
- intern = ecalloc(1, sizeof(php_sqlite3_db_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(php_sqlite3_db_object), class_type);
/* Need to keep track of things to free */
zend_llist_init(&(intern->free_list), sizeof(php_sqlite3_free_list *), (llist_dtor_func_t)php_sqlite3_free_list_dtor, 0);
php_sqlite3_stmt *intern;
/* Allocate memory for it */
- intern = ecalloc(1, sizeof(php_sqlite3_stmt) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(php_sqlite3_stmt), class_type);
zend_object_std_init(&intern->zo, class_type);
object_properties_init(&intern->zo, class_type);
php_sqlite3_result *intern;
/* Allocate memory for it */
- intern = ecalloc(1, sizeof(php_sqlite3_result) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(php_sqlite3_result), class_type);
zend_object_std_init(&intern->zo, class_type);
object_properties_init(&intern->zo, class_type);
{
PHPTidyObj *intern;
- intern = ecalloc(1, sizeof(PHPTidyObj) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(PHPTidyObj), class_type);
zend_object_std_init(&intern->std, class_type);
object_properties_init(&intern->std, class_type);
{
xmlreader_object *intern;
- intern = ecalloc(1, sizeof(xmlreader_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(xmlreader_object), class_type);
zend_object_std_init(&intern->std, class_type);
object_properties_init(&intern->std, class_type);
intern->prop_handler = &xmlreader_prop_handlers;
{
ze_xmlwriter_object *intern;
- intern = ecalloc(1, sizeof(ze_xmlwriter_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(ze_xmlwriter_object), class_type);
zend_object_std_init(&intern->std, class_type);
object_properties_init(&intern->std, class_type);
intern->std.handlers = &xmlwriter_object_handlers;
{
xsl_object *intern;
- intern = ecalloc(1, sizeof(xsl_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(xsl_object), class_type);
intern->securityPrefs = XSL_SECPREF_DEFAULT;
zend_object_std_init(&intern->std, class_type);
{
ze_zip_object *intern;
- intern = ecalloc(1, sizeof(ze_zip_object) + zend_object_properties_size(class_type));
+ intern = zend_object_alloc(sizeof(ze_zip_object), class_type);
intern->prop_handler = &zip_prop_handlers;
zend_object_std_init(&intern->zo, class_type);
object_properties_init(&intern->zo, class_type);