EX(prev_execute_data) = EG(current_execute_data);
}
- memset(EX_VAR_NUM(0), 0, sizeof(zval) * op_array->last_var);
+ do {
+ /* Initialize CV variables */
+ zval *var = EX_VAR_NUM(0);
+ zval *end = var + op_array->last_var;
+
+ while (var != end) {
+ ZVAL_UNDEF(var);
+ var++;
+ }
+ } while (0);
EX(call_slots) = (call_slot*)((char *)execute_data + execute_data_size + vars_size);
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)