35 if (!region.regiondata) {
36 region.regiondata = MEM_cnew<RegionAssetShelf>(
"RegionAssetShelf");
45 static_assert(std::is_trivial_v<RegionAssetShelf>,
46 "RegionAssetShelf needs to be trivial to allow freeing with MEM_freeN()");
47 RegionAssetShelf *new_shelf_regiondata = MEM_cnew<RegionAssetShelf>(__func__);
48 *new_shelf_regiondata = *shelf_regiondata;
52 AssetShelf *new_shelf = MEM_new<AssetShelf>(
"duplicate asset shelf",
53 blender::dna::shallow_copy(*shelf));
54 new_shelf->
settings = shelf->settings;
61 return new_shelf_regiondata;
83 if (!*shelf_regiondata) {
88 if ((*shelf_regiondata)->active_shelf) {
94 shelf->type =
nullptr;
#define BLI_assert_unreachable()
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define BLO_write_struct(writer, struct_name, data_ptr)
#define BLO_read_struct_list(reader, struct_name, list)
#define BLO_read_struct(reader, struct_name, ptr_p)
void MEM_freeN(void *vmemh)
void settings_blend_read_data(BlendDataReader *reader, AssetShelfSettings &settings)
void regiondata_free(RegionAssetShelf *shelf_regiondata)
void regiondata_blend_write(BlendWriter *writer, const RegionAssetShelf *shelf_regiondata)
void settings_blend_write(BlendWriter *writer, const AssetShelfSettings &settings)
void regiondata_blend_read_data(BlendDataReader *reader, RegionAssetShelf **shelf_regiondata)
RegionAssetShelf * regiondata_duplicate(const RegionAssetShelf *shelf_regiondata)
AssetShelfSettings settings
AssetShelf * active_shelf