Lines Matching refs:ce

156 static inline void cleanup_user_class_data(zend_class_entry *ce TSRMLS_DC)  in cleanup_user_class_data()
161 if (ce->ce_flags & ZEND_HAS_STATIC_IN_METHODS) { in cleanup_user_class_data()
162 zend_hash_apply(&ce->function_table, (apply_func_t) zend_cleanup_function_data_full TSRMLS_CC); in cleanup_user_class_data()
164 if (ce->static_members_table) { in cleanup_user_class_data()
165 zval **static_members = ce->static_members_table; in cleanup_user_class_data()
166 int count = ce->default_static_members_count; in cleanup_user_class_data()
169 ce->default_static_members_count = 0; in cleanup_user_class_data()
170 ce->default_static_members_table = ce->static_members_table = NULL; in cleanup_user_class_data()
178 static inline void cleanup_internal_class_data(zend_class_entry *ce TSRMLS_DC) in cleanup_internal_class_data()
180 if (CE_STATIC_MEMBERS(ce)) { in cleanup_internal_class_data()
183 for (i = 0; i < ce->default_static_members_count; i++) { in cleanup_internal_class_data()
184 zval_ptr_dtor(&CE_STATIC_MEMBERS(ce)[i]); in cleanup_internal_class_data()
186 efree(CE_STATIC_MEMBERS(ce)); in cleanup_internal_class_data()
188 CG(static_members_table)[(zend_intptr_t)(ce->static_members_table)] = NULL; in cleanup_internal_class_data()
190 ce->static_members_table = NULL; in cleanup_internal_class_data()
195 ZEND_API void zend_cleanup_internal_class_data(zend_class_entry *ce TSRMLS_DC) in zend_cleanup_internal_class_data()
197 cleanup_internal_class_data(ce TSRMLS_CC); in zend_cleanup_internal_class_data()
220 void _destroy_zend_class_traits_info(zend_class_entry *ce) in _destroy_zend_class_traits_info() argument
222 if (ce->num_traits > 0 && ce->traits) { in _destroy_zend_class_traits_info()
223 efree(ce->traits); in _destroy_zend_class_traits_info()
226 if (ce->trait_aliases) { in _destroy_zend_class_traits_info()
228 while (ce->trait_aliases[i]) { in _destroy_zend_class_traits_info()
229 if (ce->trait_aliases[i]->trait_method) { in _destroy_zend_class_traits_info()
230 if (ce->trait_aliases[i]->trait_method->method_name) { in _destroy_zend_class_traits_info()
231 efree((char*)ce->trait_aliases[i]->trait_method->method_name); in _destroy_zend_class_traits_info()
233 if (ce->trait_aliases[i]->trait_method->class_name) { in _destroy_zend_class_traits_info()
234 efree((char*)ce->trait_aliases[i]->trait_method->class_name); in _destroy_zend_class_traits_info()
236 efree(ce->trait_aliases[i]->trait_method); in _destroy_zend_class_traits_info()
239 if (ce->trait_aliases[i]->alias) { in _destroy_zend_class_traits_info()
240 efree((char*)ce->trait_aliases[i]->alias); in _destroy_zend_class_traits_info()
243 efree(ce->trait_aliases[i]); in _destroy_zend_class_traits_info()
247 efree(ce->trait_aliases); in _destroy_zend_class_traits_info()
250 if (ce->trait_precedences) { in _destroy_zend_class_traits_info()
253 while (ce->trait_precedences[i]) { in _destroy_zend_class_traits_info()
254 efree((char*)ce->trait_precedences[i]->trait_method->method_name); in _destroy_zend_class_traits_info()
255 efree((char*)ce->trait_precedences[i]->trait_method->class_name); in _destroy_zend_class_traits_info()
256 efree(ce->trait_precedences[i]->trait_method); in _destroy_zend_class_traits_info()
258 if (ce->trait_precedences[i]->exclude_from_classes) { in _destroy_zend_class_traits_info()
260 zend_trait_precedence *cur_precedence = ce->trait_precedences[i]; in _destroy_zend_class_traits_info()
265 efree(ce->trait_precedences[i]->exclude_from_classes); in _destroy_zend_class_traits_info()
267 efree(ce->trait_precedences[i]); in _destroy_zend_class_traits_info()
270 efree(ce->trait_precedences); in _destroy_zend_class_traits_info()
276 zend_class_entry *ce = *pce; in destroy_zend_class() local
278 if (--ce->refcount > 0) { in destroy_zend_class()
281 switch (ce->type) { in destroy_zend_class()
283 if (ce->default_properties_table) { in destroy_zend_class()
286 for (i = 0; i < ce->default_properties_count; i++) { in destroy_zend_class()
287 if (ce->default_properties_table[i]) { in destroy_zend_class()
288 zval_ptr_dtor(&ce->default_properties_table[i]); in destroy_zend_class()
291 efree(ce->default_properties_table); in destroy_zend_class()
293 if (ce->default_static_members_table) { in destroy_zend_class()
296 for (i = 0; i < ce->default_static_members_count; i++) { in destroy_zend_class()
297 if (ce->default_static_members_table[i]) { in destroy_zend_class()
298 zval_ptr_dtor(&ce->default_static_members_table[i]); in destroy_zend_class()
301 efree(ce->default_static_members_table); in destroy_zend_class()
303 zend_hash_destroy(&ce->properties_info); in destroy_zend_class()
304 str_efree(ce->name); in destroy_zend_class()
305 zend_hash_destroy(&ce->function_table); in destroy_zend_class()
306 zend_hash_destroy(&ce->constants_table); in destroy_zend_class()
307 if (ce->num_interfaces > 0 && ce->interfaces) { in destroy_zend_class()
308 efree(ce->interfaces); in destroy_zend_class()
310 if (ce->info.user.doc_comment) { in destroy_zend_class()
311 efree((char*)ce->info.user.doc_comment); in destroy_zend_class()
314 _destroy_zend_class_traits_info(ce); in destroy_zend_class()
316 efree(ce); in destroy_zend_class()
319 if (ce->default_properties_table) { in destroy_zend_class()
322 for (i = 0; i < ce->default_properties_count; i++) { in destroy_zend_class()
323 if (ce->default_properties_table[i]) { in destroy_zend_class()
324 zval_internal_ptr_dtor(&ce->default_properties_table[i]); in destroy_zend_class()
327 free(ce->default_properties_table); in destroy_zend_class()
329 if (ce->default_static_members_table) { in destroy_zend_class()
332 for (i = 0; i < ce->default_static_members_count; i++) { in destroy_zend_class()
333 zval_internal_ptr_dtor(&ce->default_static_members_table[i]); in destroy_zend_class()
335 free(ce->default_static_members_table); in destroy_zend_class()
337 zend_hash_destroy(&ce->properties_info); in destroy_zend_class()
338 str_free(ce->name); in destroy_zend_class()
339 zend_hash_destroy(&ce->function_table); in destroy_zend_class()
340 zend_hash_destroy(&ce->constants_table); in destroy_zend_class()
341 if (ce->num_interfaces > 0) { in destroy_zend_class()
342 free(ce->interfaces); in destroy_zend_class()
344 free(ce); in destroy_zend_class()
349 void zend_class_add_ref(zend_class_entry **ce) in zend_class_add_ref() argument
351 (*ce)->refcount++; in zend_class_add_ref()