Lines Matching refs:ce

170 ZEND_API void zend_cleanup_internal_class_data(zend_class_entry *ce)  in zend_cleanup_internal_class_data()  argument
172 if (CE_STATIC_MEMBERS(ce)) { in zend_cleanup_internal_class_data()
173 zval *static_members = CE_STATIC_MEMBERS(ce); in zend_cleanup_internal_class_data()
175 zval *end = p + ce->default_static_members_count; in zend_cleanup_internal_class_data()
178 CG(static_members_table)[(zend_intptr_t)(ce->static_members_table)] = NULL; in zend_cleanup_internal_class_data()
180 ce->static_members_table = NULL; in zend_cleanup_internal_class_data()
182 ce->ce_flags &= ~ZEND_ACC_CONSTANTS_UPDATED; in zend_cleanup_internal_class_data()
191 void _destroy_zend_class_traits_info(zend_class_entry *ce) in _destroy_zend_class_traits_info() argument
193 if (ce->num_traits > 0 && ce->traits) { in _destroy_zend_class_traits_info()
194 efree(ce->traits); in _destroy_zend_class_traits_info()
197 if (ce->trait_aliases) { in _destroy_zend_class_traits_info()
199 while (ce->trait_aliases[i]) { in _destroy_zend_class_traits_info()
200 if (ce->trait_aliases[i]->trait_method) { in _destroy_zend_class_traits_info()
201 if (ce->trait_aliases[i]->trait_method->method_name) { in _destroy_zend_class_traits_info()
202 zend_string_release(ce->trait_aliases[i]->trait_method->method_name); in _destroy_zend_class_traits_info()
204 if (ce->trait_aliases[i]->trait_method->class_name) { in _destroy_zend_class_traits_info()
205 zend_string_release(ce->trait_aliases[i]->trait_method->class_name); in _destroy_zend_class_traits_info()
207 efree(ce->trait_aliases[i]->trait_method); in _destroy_zend_class_traits_info()
210 if (ce->trait_aliases[i]->alias) { in _destroy_zend_class_traits_info()
211 zend_string_release(ce->trait_aliases[i]->alias); in _destroy_zend_class_traits_info()
214 efree(ce->trait_aliases[i]); in _destroy_zend_class_traits_info()
218 efree(ce->trait_aliases); in _destroy_zend_class_traits_info()
221 if (ce->trait_precedences) { in _destroy_zend_class_traits_info()
224 while (ce->trait_precedences[i]) { in _destroy_zend_class_traits_info()
225 zend_string_release(ce->trait_precedences[i]->trait_method->method_name); in _destroy_zend_class_traits_info()
226 zend_string_release(ce->trait_precedences[i]->trait_method->class_name); in _destroy_zend_class_traits_info()
227 efree(ce->trait_precedences[i]->trait_method); in _destroy_zend_class_traits_info()
229 if (ce->trait_precedences[i]->exclude_from_classes) { in _destroy_zend_class_traits_info()
231 zend_trait_precedence *cur_precedence = ce->trait_precedences[i]; in _destroy_zend_class_traits_info()
236 efree(ce->trait_precedences[i]->exclude_from_classes); in _destroy_zend_class_traits_info()
238 efree(ce->trait_precedences[i]); in _destroy_zend_class_traits_info()
241 efree(ce->trait_precedences); in _destroy_zend_class_traits_info()
248 zend_class_entry *ce = Z_PTR_P(zv); in destroy_zend_class() local
253 if (--ce->refcount > 0) { in destroy_zend_class()
256 switch (ce->type) { in destroy_zend_class()
258 if (ce->default_properties_table) { in destroy_zend_class()
259 zval *p = ce->default_properties_table; in destroy_zend_class()
260 zval *end = p + ce->default_properties_count; in destroy_zend_class()
266 efree(ce->default_properties_table); in destroy_zend_class()
268 if (ce->default_static_members_table) { in destroy_zend_class()
269 zval *p = ce->default_static_members_table; in destroy_zend_class()
270 zval *end = p + ce->default_static_members_count; in destroy_zend_class()
276 efree(ce->default_static_members_table); in destroy_zend_class()
278 ZEND_HASH_FOREACH_PTR(&ce->properties_info, prop_info) { in destroy_zend_class()
279 if (prop_info->ce == ce || (prop_info->flags & ZEND_ACC_SHADOW)) { in destroy_zend_class()
286 zend_hash_destroy(&ce->properties_info); in destroy_zend_class()
287 zend_string_release(ce->name); in destroy_zend_class()
288 zend_hash_destroy(&ce->function_table); in destroy_zend_class()
289 if (zend_hash_num_elements(&ce->constants_table)) { in destroy_zend_class()
292 ZEND_HASH_FOREACH_PTR(&ce->constants_table, c) { in destroy_zend_class()
293 if (c->ce == ce) { in destroy_zend_class()
301 zend_hash_destroy(&ce->constants_table); in destroy_zend_class()
302 if (ce->num_interfaces > 0 && ce->interfaces) { in destroy_zend_class()
303 efree(ce->interfaces); in destroy_zend_class()
305 if (ce->info.user.doc_comment) { in destroy_zend_class()
306 zend_string_release(ce->info.user.doc_comment); in destroy_zend_class()
309 _destroy_zend_class_traits_info(ce); in destroy_zend_class()
313 if (ce->default_properties_table) { in destroy_zend_class()
314 zval *p = ce->default_properties_table; in destroy_zend_class()
315 zval *end = p + ce->default_properties_count; in destroy_zend_class()
321 free(ce->default_properties_table); in destroy_zend_class()
323 if (ce->default_static_members_table) { in destroy_zend_class()
324 zval *p = ce->default_static_members_table; in destroy_zend_class()
325 zval *end = p + ce->default_static_members_count; in destroy_zend_class()
331 free(ce->default_static_members_table); in destroy_zend_class()
333 zend_hash_destroy(&ce->properties_info); in destroy_zend_class()
334 zend_string_release(ce->name); in destroy_zend_class()
336 ZEND_HASH_FOREACH_PTR(&ce->function_table, fn) { in destroy_zend_class()
338 fn->common.scope == ce) { in destroy_zend_class()
344 zend_hash_destroy(&ce->function_table); in destroy_zend_class()
345 if (zend_hash_num_elements(&ce->constants_table)) { in destroy_zend_class()
348 ZEND_HASH_FOREACH_PTR(&ce->constants_table, c) { in destroy_zend_class()
350 if (c->doc_comment && c->ce == ce) { in destroy_zend_class()
354 zend_hash_destroy(&ce->constants_table); in destroy_zend_class()
356 if (ce->num_interfaces > 0) { in destroy_zend_class()
357 free(ce->interfaces); in destroy_zend_class()
359 free(ce); in destroy_zend_class()
366 zend_class_entry *ce = Z_PTR_P(zv); in zend_class_add_ref() local
368 ce->refcount++; in zend_class_add_ref()