82 return &
id_map->type_maps[i];
102 const bool create_valid_ids_set,
103 struct Main *old_bmain,
138 if (create_valid_ids_set) {
140 if (old_bmain !=
NULL) {
198 key->
name =
id->name + 2;
short BKE_idtype_idcode_iter_step(int *index)
#define MAIN_ID_SESSION_UUID_UNSET
#define FOREACH_MAIN_ID_END
#define FOREACH_MAIN_ID_BEGIN(_bmain, _id)
struct ListBase * which_libbase(struct Main *bmain, short type)
struct GSet * BKE_main_gset_create(struct Main *bmain, struct GSet *gset)
GHash * BLI_ghash_new_ex(GHashHashFP hashfp, GHashCmpFP cmpfp, const char *info, const unsigned int nentries_reserve) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
unsigned int BLI_ghashutil_ptrhash(const void *key)
GHash * BLI_ghash_int_new(const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
bool BLI_gset_haskey(GSet *gs, const void *key) ATTR_WARN_UNUSED_RESULT
void BLI_ghash_insert(GHash *gh, void *key, void *val)
void BLI_ghash_free(GHash *gh, GHashKeyFreeFP keyfreefp, GHashValFreeFP valfreefp)
#define BLI_ghashutil_strhash(key)
void BLI_gset_free(GSet *gs, GSetKeyFreeFP keyfreefp)
bool BLI_ghash_ensure_p(GHash *gh, void *key, void ***r_val) ATTR_WARN_UNUSED_RESULT
void * BLI_ghash_lookup(GHash *gh, const void *key) ATTR_WARN_UNUSED_RESULT
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define UNUSED_VARS_NDEBUG(...)
#define POINTER_FROM_UINT(i)
ID and Library types, which are fundamental for sdna.
Read Guarded memory(de)allocation.
ID * BKE_main_idmap_lookup_uuid(struct IDNameLib_Map *id_map, const uint session_uuid)
static bool idkey_cmp(const void *a, const void *b)
void BKE_main_idmap_destroy(struct IDNameLib_Map *id_map)
struct Main * BKE_main_idmap_main_get(struct IDNameLib_Map *id_map)
ID * BKE_main_idmap_lookup_id(struct IDNameLib_Map *id_map, const ID *id)
ID * BKE_main_idmap_lookup_name(struct IDNameLib_Map *id_map, short id_type, const char *name, const Library *lib)
static struct IDNameLib_TypeMap * main_idmap_from_idcode(struct IDNameLib_Map *id_map, short id_type)
struct IDNameLib_Map * BKE_main_idmap_create(struct Main *bmain, const bool create_valid_ids_set, struct Main *old_bmain, const int idmap_types)
static unsigned int idkey_hash(const void *ptr)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_mallocN)(size_t len, const char *str)
struct GSet * valid_id_pointers
struct IDNameLib_TypeMap type_maps[INDEX_ID_MAX]
struct IDNameLib_Key * keys
unsigned int session_uuid