Lines Matching refs:tdata

334    Eo_Id_Table_Data *tdata;  in _eo_table_data_table_new()  local
336 tdata = calloc(1, sizeof(Eo_Id_Table_Data)); in _eo_table_data_table_new()
337 if (!tdata) return NULL; in _eo_table_data_table_new()
340 if (!eina_lock_recursive_new(&(tdata->obj_lock))) in _eo_table_data_table_new()
342 free(tdata); in _eo_table_data_table_new()
345 tdata->shared = EINA_TRUE; in _eo_table_data_table_new()
347 tdata->generation = rand() % MAX_GENERATIONS; in _eo_table_data_table_new()
348 return tdata; in _eo_table_data_table_new()
368 _eo_table_data_table_free(Eo_Id_Table_Data *tdata) in _eo_table_data_table_free() argument
370 if (tdata->shared) eina_lock_free(&(tdata->obj_lock)); in _eo_table_data_table_free()
371 free(tdata); in _eo_table_data_table_free()
441 #define TABLE_FROM_IDS tdata->eo_ids_tables[mid_table_id][table_id]
472 _search_tables(Eo_Id_Table_Data *tdata) in _search_tables() argument
477 if (!tdata) return NULL; in _search_tables()
480 if (!tdata->eo_ids_tables[mid_table_id]) in _search_tables()
483tdata->eo_ids_tables[mid_table_id] = _eo_id_mem_calloc(MAX_TABLE_ID, sizeof(_Eo_Ids_Table*)); in _search_tables()
492 if (tdata->empty_table) in _search_tables()
495 table = tdata->empty_table; in _search_tables()
496 tdata->empty_table = NULL; in _search_tables()
510 UNPROTECT(tdata->eo_ids_tables[mid_table_id]); in _search_tables()
512 PROTECT(tdata->eo_ids_tables[mid_table_id]); in _search_tables()
520 tdata->current_table = table; in _search_tables()
527 tdata->current_table = NULL; in _search_tables()
537 Eo_Id_Table_Data *tdata; in _eo_id_allocate() local
544 tdata = _eo_table_data_table_get(data, domain); in _eo_id_allocate()
546 else tdata = _eo_table_data_current_table_get(data); in _eo_id_allocate()
547 if (!tdata) return 0; in _eo_id_allocate()
549 if (EINA_LIKELY(!tdata->shared)) in _eo_id_allocate()
551 if (tdata->current_table) in _eo_id_allocate()
552 entry = _get_available_entry(tdata->current_table); in _eo_id_allocate()
554 if (!entry) entry = _search_tables(tdata); in _eo_id_allocate()
556 if (!tdata->current_table || !entry) in _eo_id_allocate()
561 UNPROTECT(tdata->current_table); in _eo_id_allocate()
563 tdata->generation++; in _eo_id_allocate()
564 if (tdata->generation >= MAX_GENERATIONS) tdata->generation = 1; in _eo_id_allocate()
568 entry->generation = tdata->generation; in _eo_id_allocate()
569 PROTECT(tdata->current_table); in _eo_id_allocate()
570 id = EO_COMPOSE_FINAL_ID(tdata->current_table->partial_id, in _eo_id_allocate()
571 (entry - tdata->current_table->entries), in _eo_id_allocate()
578 if (tdata->current_table) in _eo_id_allocate()
579 entry = _get_available_entry(tdata->current_table); in _eo_id_allocate()
581 if (!entry) entry = _search_tables(tdata); in _eo_id_allocate()
583 if (!tdata->current_table || !entry) in _eo_id_allocate()
589 UNPROTECT(tdata->current_table); in _eo_id_allocate()
591 tdata->generation++; in _eo_id_allocate()
592 if (tdata->generation == MAX_GENERATIONS) tdata->generation = 1; in _eo_id_allocate()
596 entry->generation = tdata->generation; in _eo_id_allocate()
597 PROTECT(tdata->current_table); in _eo_id_allocate()
598 id = EO_COMPOSE_FINAL_ID(tdata->current_table->partial_id, in _eo_id_allocate()
599 (entry - tdata->current_table->entries), in _eo_id_allocate()
617 Eo_Id_Table_Data *tdata; in _eo_id_release() local
621 tdata = _eo_table_data_table_get(data, domain); in _eo_id_release()
622 if (!tdata) return; in _eo_id_release()
629 if (tdata->eo_ids_tables[mid_table_id] && (table = TABLE_FROM_IDS)) in _eo_id_release()
650 UNPROTECT(tdata->eo_ids_tables[mid_table_id]); in _eo_id_release()
652 PROTECT(tdata->eo_ids_tables[mid_table_id]); in _eo_id_release()
654 if (!tdata->empty_table) tdata->empty_table = table; in _eo_id_release()
656 if (tdata->current_table == table) in _eo_id_release()
657 tdata->current_table = NULL; in _eo_id_release()
660 if (tdata->cache.id == obj_id) in _eo_id_release()
662 tdata->cache.id = 0; in _eo_id_release()
663 tdata->cache.object = NULL; in _eo_id_release()
665 if ((Eo_Id)tdata->cache.isa_id == obj_id) in _eo_id_release()
667 tdata->cache.isa_id = NULL; in _eo_id_release()
668 tdata->cache.klass = NULL;; in _eo_id_release()
669 tdata->cache.isa = EINA_FALSE; in _eo_id_release()
679 if (tdata->eo_ids_tables[mid_table_id] && (table = TABLE_FROM_IDS)) in _eo_id_release()
700 UNPROTECT(tdata->eo_ids_tables[mid_table_id]); in _eo_id_release()
702 PROTECT(tdata->eo_ids_tables[mid_table_id]); in _eo_id_release()
704 if (!tdata->empty_table) tdata->empty_table = table; in _eo_id_release()
706 if (tdata->current_table == table) in _eo_id_release()
707 tdata->current_table = NULL; in _eo_id_release()
710 if (tdata->cache.id == obj_id) in _eo_id_release()
712 tdata->cache.id = 0; in _eo_id_release()
713 tdata->cache.object = NULL; in _eo_id_release()
715 if ((Eo_Id)tdata->cache.isa_id == obj_id) in _eo_id_release()
717 tdata->cache.isa_id = NULL; in _eo_id_release()
718 tdata->cache.klass = NULL;; in _eo_id_release()
719 tdata->cache.isa = EINA_FALSE; in _eo_id_release()
733 Eo_Id_Table_Data *tdata; in _eo_free_ids_tables() local
736 tdata = data->tables[data->local_domain]; in _eo_free_ids_tables()
739 if (tdata->eo_ids_tables[mid_table_id]) in _eo_free_ids_tables()
748 _eo_id_mem_free(tdata->eo_ids_tables[mid_table_id]); in _eo_free_ids_tables()
750 tdata->eo_ids_tables[mid_table_id] = NULL; in _eo_free_ids_tables()
752 if (tdata->empty_table) _eo_id_mem_free(tdata->empty_table); in _eo_free_ids_tables()
753 tdata->empty_table = tdata->current_table = NULL; in _eo_free_ids_tables()
754 _eo_table_data_table_free(tdata); in _eo_free_ids_tables()
761 _eo_print(Eo_Id_Table_Data *tdata) in _eo_print() argument
768 if (tdata->eo_ids_tables[mid_table_id]) in _eo_print()