Blender V4.3
listbase.cc File Reference
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_listBase.h"
#include "BLI_listbase.h"
#include "BLI_strict_flags.h"
#include "list_sort_impl.h"

Go to the source code of this file.

Macros

#define SORT_IMPL_LINKTYPE   Link
 
#define SORT_IMPL_FUNC   listbase_sort_fn
 
#define SORT_IMPL_USE_THUNK
 
#define SORT_IMPL_FUNC   listbase_sort_fn_r
 

Functions

void BLI_movelisttolist (ListBase *dst, ListBase *src)
 
void BLI_movelisttolist_reverse (ListBase *dst, ListBase *src)
 
void BLI_listbase_split_after (ListBase *original_listbase, ListBase *split_listbase, void *vlink)
 
void BLI_addhead (ListBase *listbase, void *vlink)
 
void BLI_addtail (ListBase *listbase, void *vlink)
 
void BLI_remlink (ListBase *listbase, void *vlink)
 
bool BLI_remlink_safe (ListBase *listbase, void *vlink)
 
void BLI_listbase_swaplinks (ListBase *listbase, void *vlinka, void *vlinkb)
 
void BLI_listbases_swaplinks (ListBase *listbasea, ListBase *listbaseb, void *vlinka, void *vlinkb)
 
void * BLI_pophead (ListBase *listbase)
 
void * BLI_poptail (ListBase *listbase)
 
void BLI_freelinkN (ListBase *listbase, void *vlink)
 
static void listbase_double_from_single (Link *iter, ListBase *listbase)
 
void BLI_listbase_sort (ListBase *listbase, int(*cmp)(const void *, const void *))
 
void BLI_listbase_sort_r (ListBase *listbase, int(*cmp)(void *, const void *, const void *), void *thunk)
 
void BLI_insertlinkafter (ListBase *listbase, void *vprevlink, void *vnewlink)
 
void BLI_insertlinkbefore (ListBase *listbase, void *vnextlink, void *vnewlink)
 
void BLI_insertlinkreplace (ListBase *listbase, void *vreplacelink, void *vnewlink)
 
bool BLI_listbase_link_move (ListBase *listbase, void *vlink, int step)
 
bool BLI_listbase_move_index (ListBase *listbase, int from, int to)
 
void BLI_freelist (ListBase *listbase)
 
void BLI_freelistN (ListBase *listbase)
 
int BLI_listbase_count_at_most (const ListBase *listbase, const int count_max)
 
int BLI_listbase_count (const ListBase *listbase)
 
void * BLI_findlink (const ListBase *listbase, int number)
 
void * BLI_rfindlink (const ListBase *listbase, int number)
 
void * BLI_findlinkfrom (Link *start, int step)
 
int BLI_findindex (const ListBase *listbase, const void *vlink)
 
void * BLI_findstring (const ListBase *listbase, const char *id, const int offset)
 
void * BLI_rfindstring (const ListBase *listbase, const char *id, const int offset)
 
void * BLI_findstring_ptr (const ListBase *listbase, const char *id, const int offset)
 
void * BLI_rfindstring_ptr (const ListBase *listbase, const char *id, const int offset)
 
void * BLI_listbase_findafter_string_ptr (Link *link, const char *id, const int offset)
 
void * BLI_findptr (const ListBase *listbase, const void *ptr, const int offset)
 
void * BLI_rfindptr (const ListBase *listbase, const void *ptr, const int offset)
 
void * BLI_listbase_bytes_find (const ListBase *listbase, const void *bytes, const size_t bytes_size, const int offset)
 
void * BLI_listbase_bytes_rfind (const ListBase *listbase, const void *bytes, const size_t bytes_size, const int offset)
 
void * BLI_listbase_string_or_index_find (const ListBase *listbase, const char *string, const size_t string_offset, const int index)
 
int BLI_findstringindex (const ListBase *listbase, const char *id, const int offset)
 
ListBase BLI_listbase_from_link (Link *some_link)
 
void BLI_duplicatelist (ListBase *dst, const ListBase *src)
 
void BLI_listbase_reverse (ListBase *lb)
 
void BLI_listbase_rotate_first (ListBase *lb, void *vlink)
 
void BLI_listbase_rotate_last (ListBase *lb, void *vlink)
 
bool BLI_listbase_validate (ListBase *lb)
 
LinkDataBLI_genericNodeN (void *data)
 

Detailed Description

Manipulations on double-linked list (ListBase structs).

For single linked lists see 'BLI_linklist.h'

Definition in file listbase.cc.

Macro Definition Documentation

◆ SORT_IMPL_FUNC [1/2]

#define SORT_IMPL_FUNC   listbase_sort_fn

Definition at line 298 of file listbase.cc.

◆ SORT_IMPL_FUNC [2/2]

#define SORT_IMPL_FUNC   listbase_sort_fn_r

Definition at line 298 of file listbase.cc.

◆ SORT_IMPL_LINKTYPE

#define SORT_IMPL_LINKTYPE   Link

Definition at line 295 of file listbase.cc.

◆ SORT_IMPL_USE_THUNK

#define SORT_IMPL_USE_THUNK

Definition at line 303 of file listbase.cc.

Function Documentation

◆ BLI_addhead()

void BLI_addhead ( struct ListBase * listbase,
void * vlink )

Prepends vlink (assumed to begin with a Link) onto listbase.

Definition at line 90 of file listbase.cc.

References ListBase::first, ListBase::last, Link::next, and Link::prev.

Referenced by _bm_select_history_store_head_notest(), blender::ed::asset::shelf::activate_shelf(), blender::animrig::tests::add_fcurve_to_action(), area_init_type_fallback(), BKE_blender_user_menu_ensure(), BKE_displist_fill(), BKE_gpencil_layer_addnew(), BKE_gpencil_stroke_add(), BKE_nla_action_stash(), BKE_nlameta_add_strip(), BKE_nlastrips_sort_strips(), BLI_box_pack_2d_fixedarea(), bli_builddir(), blo_do_versions_280(), blo_do_versions_pre250(), blo_do_versions_userdef(), bm_loop_build(), BM_mesh_edgeloops_find_path(), bm_uidwalk_facestep_begin(), bm_uidwalk_pass_add(), BMO_error_raise(), BMW_state_add(), copy_particle_dupliob_exec(), do_version_area_change_space_to_space_action(), do_versions_after_linking_290(), ED_area_newspace(), ED_keylist_add_or_update_column(), ed_marker_duplicate_apply(), ED_spacetype_action(), ED_spacetype_buttons(), ED_spacetype_clip(), ED_spacetype_console(), ED_spacetype_file(), ED_spacetype_image(), ED_spacetype_info(), ED_spacetype_ipo(), ED_spacetype_nla(), ED_spacetype_node(), ED_spacetype_outliner(), ED_spacetype_script(), ED_spacetype_sequencer(), ED_spacetype_statusbar(), ED_spacetype_text(), ED_spacetype_topbar(), ED_spacetype_userpref(), ED_spacetype_view3d(), frame_cache_add(), frame_cache_touch(), gizmo_prepare_drawing(), gpencil_stroke_join_islands(), id_sort_by_name(), image_add_view(), imb_exr_get_pass(), lineart_chain_prepend_point(), lineart_create_edges_from_isec_data(), lineart_mem_new_static_pool(), make_selection_list_nurb(), ml_addview_cb(), MOD_lineart_chain_clip_at_border(), nlastrip_shuffle_transformed(), object_blend_read_data(), order_object_receiver_after(), order_object_receiver_before(), prependPolyLineVert(), blender::ed::spreadsheet::register_spacetype(), screen_area_spacelink_add(), seq_meta_stack_alloc(), swap_wm_data_for_blendfile(), text_init_data(), toolsystem_brush_type_binding_update(), blender::ed::outliner::tree_element_to_path(), ui_block_colorpicker_create(), UI_block_region_set(), ui_panel_category_active_set(), UI_popover_end(), ui_popup_block_position(), ui_popup_block_refresh(), UI_theme_init_default(), blender::ed::asset::shelf::update_active_shelf(), version_geometry_nodes_extrude_smooth_propagation(), version_geometry_nodes_primitive_uv_maps(), blender::ed::object::vgroup_sort_bone_hierarchy(), WM_event_add_dropbox_handler(), WM_event_add_keymap_handler_priority(), wm_event_add_mousemove_to_head(), WM_event_add_ui_handler(), WM_gizmomaptype_ensure(), wm_handler_operator_insert(), wm_history_file_update(), wm_keymap_addon_add(), WM_toolsystem_ref_ensure(), workspace_relation_add(), and workspace_relation_ensure_updated().

◆ BLI_addtail()

void BLI_addtail ( struct ListBase * listbase,
void * vlink )

Appends vlink (assumed to begin with a Link) onto listbase.

Definition at line 110 of file listbase.cc.

References ListBase::first, ListBase::last, Link::next, and Link::prev.

Referenced by _bm_select_history_store_notest(), act_markers_make_local_exec(), action_buttons_register(), blender::bke::action_copy_data(), action_create(), blender::animrig::action_fcurve_attach(), blender::animrig::action_fcurve_ensure(), action_groups_add_new(), AnimationImporter::add_bone_fcurve(), blender::io::usd::USDGeomReader::add_cache_modifier(), add_collision_object(), blender::ed::space_node::add_dragged_links_to_tree(), add_effector_evaluation(), add_effector_relation(), blender::ed::outliner::AbstractTreeDisplay::add_element(), add_empty_ks_path_exec(), add_fmodifier(), add_marker_to_cfra_elem(), add_membership(), add_new_constraint_to_list(), blender::bke::greasepencil::LayerGroup::add_node(), add_object_path(), blender::realtime_compositor::FileOutput::add_pass(), add_reference(), add_reverse_pointers(), blender::io::usd::USDGeomReader::add_subdiv_modifier(), add_to_modifier_list(), blender::ed::greasepencil::add_vertex_groups(), blender::realtime_compositor::FileOutput::add_view(), blender::realtime_compositor::FileOutput::add_view(), blender::io::alembic::AbcObjectReader::addCacheModifier(), addedgetoscanvert(), addfillface(), addMatrixSpace(), addSnapPoint(), adduplicateflagNurb(), ANIM_armature_bonecoll_assign_editbone(), ANIM_fmodifiers_copy_to_buf(), ANIM_fmodifiers_paste_from_buf(), ANIM_keyingset_info_register(), animchannels_ungroup_exec(), animdata_filter_dopesheet_summary(), animdata_move_drivers_by_basepath(), animfilter_fcurves_span(), animviz_get_object_motionpaths(), annotation_arrow_create(), annotation_stroke_newfrombuffer(), blender::ed::greasepencil::append_frame_to_key_edit_data(), appendPolyLineVert(), AnimationImporter::apply_matrix_curves(), area_add_header_region(), area_add_window_regions(), area_azone_init(), armature_extrude_exec(), armature_flip_names_exec(), armature_subdivide_exec(), asset_metadata_tag_add(), asset_shelf_settings_new(), AnimationImporter::Assign_color_animations(), AnimationImporter::Assign_float_animations(), AnimationImporter::Assign_lens_animations(), blender::bke::greasepencil::assign_to_vertex_group(), blender::bke::greasepencil::assign_to_vertex_group_from_mask(), autotrack_context_step_cb(), bchunk_list_append_only(), bevels_to_filledpoly(), bezt_to_cfraelem(), BKE_action_groups_reconstruct(), BKE_addon_ensure(), BKE_animsys_get_nla_keyframing_context(), BKE_appdir_app_templates(), BKE_asset_catalog_path_list_add_path(), BKE_asset_catalog_path_list_duplicate(), BKE_blender_user_menu_item_add(), BKE_blendfile_library_relocate(), BKE_blendfile_userdef_from_defaults(), BKE_cachefile_add_layer(), BKE_callback_add(), BKE_camera_background_image_new(), BKE_collection_parent_relations_rebuild(), BKE_collider_cache_create(), BKE_cryptomatte_matte_id_to_entries(), BKE_curve_bevelList_make(), BKE_defgroup_copy_list(), BKE_fcurve_merge_duplicate_keys(), BKE_fcurves_copy(), BKE_freestyle_config_copy(), BKE_freestyle_lineset_add(), BKE_freestyle_module_add(), BKE_gpencil_frame_addcopy(), BKE_gpencil_frame_addnew(), BKE_gpencil_frame_duplicate(), BKE_gpencil_layer_addnew(), BKE_gpencil_layer_duplicate(), BKE_gpencil_layer_mask_copy(), BKE_gpencil_palette_addnew(), BKE_gpencil_palettecolor_addnew(), BKE_gpencil_stroke_add(), BKE_gpencil_stroke_delete_tagged_points(), BKE_grease_pencil_copy_layer_parameters(), BKE_image_add_renderslot(), BKE_image_add_tile(), BKE_image_get_tile_info(), BKE_image_packfiles(), BKE_image_packfiles_from_mem(), BKE_image_pool_acquire_ibuf(), BKE_keyblock_add(), BKE_keyconfig_pref_ensure(), BKE_keyingset_add(), BKE_keyingset_add_path(), BKE_lib_override_library_create_from_tag(), BKE_lib_override_library_property_get(), BKE_lib_override_library_property_operation_get(), BKE_libblock_alloc_in_lib(), BKE_libblock_management_main_add(), BKE_linestyle_modifier_list_color_ramps(), BKE_main_mesh_legacy_convert_auto_smooth(), BKE_mask_clipboard_copy_from_layer(), BKE_mask_clipboard_paste_to_layer(), BKE_mask_layer_copy(), BKE_mask_layer_copy_list(), BKE_mask_layer_new(), BKE_mask_layer_shape_verify_frame(), BKE_mask_spline_add(), BKE_mball_element_add(), BKE_mesh_to_curve_nurblist(), BKE_nla_tracks_copy(), BKE_nlameta_add_strip(), BKE_nlastrip_copy(), BKE_nlastrip_validate_fcurves(), BKE_nlastrips_add_strip_unsafe(), BKE_nlastrips_make_metas(), BKE_nlatrack_copy(), BKE_nurbList_duplicate(), BKE_object_copy_particlesystems(), BKE_object_defgroup_new(), BKE_object_insert_ptcache(), BKE_object_modifier_stack_copy(), BKE_palette_color_add(), BKE_panel_layout_panel_state_ensure(), BKE_pose_add_group(), BKE_pose_channel_ensure(), BKE_preferences_asset_library_add(), BKE_preferences_extension_repo_add(), BKE_ptcache_add(), BKE_ptcache_copy_list(), BKE_ptcache_disk_to_mem(), BKE_ptcache_ids_from_object(), BKE_render_result_stamp_data(), BKE_report(), BKE_reportf(), BKE_scene_add_render_view(), BKE_spacedata_copylist(), BKE_studiolight_create(), BKE_studiolight_init(), BKE_tracking_clipboard_copy_tracks(), BKE_tracking_clipboard_paste_tracks(), BKE_tracking_object_add(), BKE_tracking_plane_track_add(), BKE_tracking_track_add_empty(), BKE_undosys_step_push_with_type(), BKE_undosys_type_append(), BKE_vfont_build_char(), BKE_view_layer_add(), BKE_view_layer_add_aov(), BKE_view_layer_add_lightgroup(), BKE_view_layer_copy_data(), BKE_viewer_path_copy(), BKE_workspace_layout_add(), blf_glyph_to_curves(), BLI_array_store_state_add(), BLI_astar_node_link_add(), BLI_box_pack_2d_fixedarea(), BLI_duplicatelist(), BLI_scanfill_calc_self_isect(), BLI_scanfill_edge_add(), BLI_scanfill_vert_add(), BLI_threadpool_init(), BLI_timer_register(), blo_do_versions_250(), blo_do_versions_270(), blo_do_versions_280(), blo_do_versions_pre250(), blo_find_main(), BLO_memfile_chunk_add(), blo_read_file_internal(), blo_split_main(), bm_edge_subdiv_as_loop(), BM_edgeloop_from_verts(), bm_face_boundary_add(), bm_face_create__sfme(), BM_faces_join(), BM_log_entry_add(), bm_loop_build(), bm_mesh_calc_uv_islands(), BM_mesh_edgeloops_calc_order(), BM_mesh_edgeloops_find(), BM_mesh_edgeloops_find_path(), BM_mesh_region_match(), BMW_state_add(), bone_mouse_select_menu(), bpath_list_append(), bpy_prop_py_data_ensure(), btw_smooth_allocate_operator_data(), build_pict_list_from_anim(), build_pict_list_from_image_sequence(), blender::ed::outliner::TreeDisplayLibraries::build_tree(), build_underline(), buttons_context_register(), buttons_create(), buttons_texture_user_node_add(), buttons_texture_user_property_add(), buttons_texture_user_socket_property_add(), camera_copy_data(), blender::ed::asset::shelf::catalog_selector_panel_register(), chains_find_tips(), channel_list_add_element(), clip_create(), collection_child_add(), blender::ed::object::collection_exporter_add_exec(), collection_exporter_copy(), collection_object_add(), collection_object_cache_fill(), colormanage_colorspace_add(), colormanage_display_add(), colormanage_load_config(), colormanage_look_add(), colormanage_view_add(), columnselect_action_keys(), columnselect_graph_keys(), console_create(), console_lb_add__internal(), console_lb_add_str__internal(), console_scrollback_prompt_begin(), copy_animedit_keys(), copy_image_packedfiles(), copy_particle_systems_to_object(), count_images(), blender::io::obj::CurveFromGeometry::create_curve(), blender::io::obj::CurveFromGeometry::create_curve_object(), create_ghost_curves(), create_placeholder(), cryptomatte_add(), curve_bevel_make_extrude_and_fill(), curve_bevel_make_from_object(), curve_bevel_make_full_circle(), curve_bevel_make_only_extrude(), curve_delete_segments(), curve_draw_exec(), curve_to_displist(), curvesurf_prim_add(), data_dir_add(), data_transfer_layersmapping_add_item(), direct_link_area(), direct_link_library(), do_version_constraints_245(), do_versions_node_group_add_socket_2_56_2(), driver_add_new_variable(), DRW_drawdata_ensure(), DRW_engine_register(), DRW_fluid_ensure_flags(), DRW_fluid_ensure_range_field(), DRW_instance_data_list_create(), DRW_smoke_ensure(), DRW_smoke_ensure_coba_field(), DRW_smoke_ensure_velocity(), DRW_view_layer_engine_data_ensure_ex(), duplicate_metaelems_exec(), duplicate_render_layer(), duplicateEditBoneObjects(), dynamicPaint_createNewSurface(), ED_area_data_copy(), ED_armature_bones_flip_names(), ED_armature_ebone_add(), ED_armature_ebone_listbase_copy(), ED_armature_from_edit(), ED_armature_join_objects_exec(), ED_clip_buttons_register(), ED_curve_add_nurbs_primitive(), ED_curve_editnurb_load(), ED_curve_editnurb_make(), ED_curve_join_objects_exec(), ed_editcurve_addvert(), ED_gpencil_anim_copybuf_copy(), ED_gpencil_anim_copybuf_paste(), ED_gpencil_layer_make_cfra_list(), ED_image_filesel_detect_sequences(), ed_marker_add_exec(), ed_marker_camera_bind_exec(), ed_marker_make_links_scene_exec(), ED_masklayer_make_cfra_list(), ED_mesh_join_objects_exec(), ED_node_tree_push(), ED_node_tree_start(), ED_outliner_selected_objects_get(), ED_preview_restart_queue_add(), ED_region_draw_cb_activate(), ED_text_format_register(), ED_undo_gpencil_step(), ED_uvedit_buttons_register(), ED_view3d_cursor_snap_state_active_set(), ED_view3d_cursor_snap_state_create(), EDBM_select_interior_faces(), edge_isect_ls_add(), editmball_from_undomball(), blender::ed::object::effector_add_exec(), blender::bke::greasepencil::ensure_vertex_group(), blender::ensure_vertex_group(), euler_filter_group_channels(), evaluate_curve_type_object(), evaluate_surface_object(), blender::ed::outliner::TreeElementPoseBase::expand(), blender::animrig::tests::ActionLegacyTest::fcurve_add_legacy(), fcurve_add_to_list(), blender::bke::greasepencil::convert::AnimDataConvertor::fcurves_convert_finalize(), fcurves_to_pchan_links_get(), file_create(), file_execute_region_panels_register(), file_tool_props_region_panels_register(), file_tools_region_panels_register(), filelist_file_create_entry(), filelist_readjob_list_dir(), filelist_readjob_list_lib(), filelist_readjob_list_lib_add_datablock(), filelist_readjob_list_lib_populate_from_index(), filelist_readjob_main_assets_add_items(), blender::realtime_compositor::FileOutput::FileOutput(), fill_add_joint(), fillBevelCap(), find_fcurve_segments(), blender::bke::greasepencil::convert::find_used_vertex_groups(), flatten_group_do(), fmodifier_panel_register(), fmodifier_subpanel_register(), folder_history_list_duplicate(), folder_history_list_ensure_for_active_browse_mode(), folderlist_pushdir(), fullscreen_azone_init(), blender::io::usd::gather_objects_paths(), gaussian_smooth_allocate_operator_data(), GPUCodegen::generate_cryptomatte(), GPUCodegen::generate_uniform_buffer(), get_bhead(), get_item_transform_flags_and_fcurves(), get_keyed_frames_in_range(), get_selected_frames(), get_selected_marker_positions(), gpencil_undo_push(), gpu_batch_presets_register(), GPU_link(), GPU_material_add_output_link_aov(), GPU_material_add_output_link_composite(), GPU_material_from_nodetree(), GPU_material_split_sub_function(), gpu_node_graph_add_attribute(), gpu_node_graph_add_layer_attribute(), gpu_node_graph_add_texture(), gpu_node_graph_add_uniform_attribute(), gpu_node_input_link(), gpu_node_output(), gpu_select_pick_end(), gpu_select_pick_load_id(), gpu_stack_link_v(), gpu_texture_create_tile_array(), graph_buttons_register(), graph_create(), graphkeys_click_insert_exec(), blender::ed::greasepencil::grease_pencil_layer_mask_add_exec(), greasepencil_copy_data(), blender::ed::asset::shelf::header_regiontype_register(), hud_panels_register(), hud_region_add(), icon_preview_add_size(), id_sort_by_name(), IDP_AddToGroup(), IDP_CopyGroup(), IDP_MergeGroup_ex(), IDP_ReplaceGroupInGroup(), IDP_ReplaceInGroup_ex(), image_add_view(), image_buttons_register(), image_camera_background_texture_get(), image_create(), image_init(), image_init_multilayer_multiview(), image_load_movie_file(), image_memorypack_imbuf(), image_sequence_get_frame_ranges(), IMB_exr_add_channel(), IMB_exr_get_handle(), imb_exr_get_layer(), imb_exr_get_pass(), blender::io::usd::import_blendshapes(), blender::io::usd::import_mesh_skel_bindings(), info_create(), blender::ed::object::init_multiresbake_job(), initialize_chain(), initialize_posetree(), internalDocs(), knife_append_list(), knife_split_edge(), blender::bke::greasepencil::Layer::Layer(), layer_collection_add(), layer_collection_objects_sync(), layer_collection_resync_create_recurse(), layer_collection_sync(), blender::bke::greasepencil::convert::legacy_gpencil_to_grease_pencil(), blender::bke::greasepencil::convert::legacy_object_modifier_common(), lib_override_library_resync(), lineart_chain_append_point(), lineart_chain_create(), lineart_create_edges_from_isec_data(), lineart_discard_segment(), lineart_edge_cut(), lineart_geometry_object_load(), lineart_list_append_pointer_pool(), lineart_list_append_pointer_pool_sized(), lineart_list_append_pointer_pool_sized_thread(), lineart_list_append_pointer_pool_thread(), lineart_main_transform_and_add_shadow(), lineart_shadow_cast_generate_edges(), lineart_shadow_create_shadow_edge_array(), linkedlist_sync_add_node(), load_image_single(), blender::ed::greasepencil::lookup_or_add_deform_group_index(), M_Geometry_tessellate_polygon(), make_boneList_recursive(), make_dupli(), make_selection_list_nurb(), mask_shape_key_rekey_exec(), menu_items_from_all_operators(), menu_items_from_ui_create_item_from_button(), ml_addlayer_cb(), ml_addpass_cb(), ml_addview_cb(), MOD_lineart_chain_clip_at_border(), MOD_lineart_chain_connect(), MOD_lineart_chain_split_angle(), MOD_lineart_chain_split_for_fixed_occlusion(), modifier_panel_register(), modifier_subpanel_register(), blender::ed::object::motion_paths_recalc_selected(), blender::ed::object::motion_paths_recalc_visible(), blender::ed::object::move_to_collection_menus_create(), movieclip_get_gputexture_ptr(), nearest_fcurve_vert_store(), new_particle_target_exec(), nla_buttons_register(), nla_create(), nlaedit_snap_exec(), nlaevalchan_verify_key(), nlastrip_shuffle_transformed(), nlastrips_ctime_get_strip(), blender::bke::node_add_link(), blender::bke::node_add_node(), blender::bke::node_add_socket(), blender::bke::node_copy_with_mapping(), blender::ed::space_node::node_create(), blender::ed::space_node::node_duplicate_exec(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_group_separate_selected(), blender::ed::space_node::node_group_ungroup(), blender::bke::ntree_copy_data(), ntreeCompositCryptomatteUpdateLayerNames(), ntreeGetThreadStack(), object_add_or_copy_particle_system(), object_blend_read_data(), object_copy_data(), blender::ed::object::object_grease_pencil_add_exec(), object_mouse_select_menu(), object_preview_scene_create(), open_anim_file_multiview(), order_collection_receiver_after(), order_collection_receiver_before(), blender::ed::outliner::outliner_collect_selected_collections(), blender::ed::outliner::outliner_collect_selected_objects(), blender::ed::outliner::outliner_collections_children_sort(), blender::ed::outliner::outliner_create(), blender::ed::outliner::outliner_make_object_parent_hierarchy(), blender::ed::outliner::outliner_sort(), overlay_edit_uv_cache_populate(), panel_add_instanced(), panel_list_copy(), blender::interface::internal::paste_property_drivers(), blender::ed::asset::shelf::popover_panel_register(), pose_backup_create(), pose_flip_names_exec(), pose_propagate_exec(), preferences_autoexec_add_exec(), preview_get_localized_world(), blender::ed::space_node::preview_prepare_scene(), preview_prepare_scene(), project_paint_prepare_all_faces(), property_search_all_tabs(), psys_alloc_path_cache_buffers(), psys_check_group_weights(), ptcache_add_extra_data(), ptcache_copy(), ptcache_disk_frame_to_mem(), ptcache_write(), raycast_all_cb(), RE_create_gp_pass(), RE_DuplicateRenderResult(), RE_engine_begin_result(), RE_engines_register(), blender::io::usd::USDNurbsReader::read_curve_sample(), read_libblock(), read_libblock_undo_restore_at_old_address(), read_libblock_undo_restore_identical(), blender::io::usd::USDPointInstancerReader::read_object_data(), read_undo_move_libmain_data(), blender::io::alembic::AbcNurbsReader::readObjectData(), rearrange_animchannel_add_to_islands(), rearrange_island_bottom(), recalcData_nla(), blender::nodes::refresh_node_sockets_and_panels(), region_azone_edge_init(), region_azone_scrollbar_init(), region_copylist(), region_quadview_exec(), blender::ed::asset::shelf::regiondata_duplicate(), blender::ed::spreadsheet::register_row_filter_panels(), render_layer_add_pass(), render_result_from_bake(), render_result_new(), render_result_single_layer_end(), render_result_view_new(), render_result_views_shallowcopy(), repeat_history_exec(), reuse_bmain_move_id(), rna_path_parse(), blender::ed::spreadsheet::row_filter_add_exec(), rule_add_exec(), scanfill(), scanfill_preprocess_self_isect(), screen_addarea_ex(), screen_geom_edge_add_ex(), screen_geom_vertex_add_ex(), screen_opengl_views_setup(), script_create(), blender::ed::object::selected_objects_get(), SEQ_add_movie_strip(), SEQ_add_reload_new_file(), seq_animation_duplicate(), SEQ_channels_duplicate(), SEQ_channels_ensure(), SEQ_connect(), SEQ_connections_duplicate(), seq_disk_cache_add_file_to_list(), seq_dupli(), SEQ_edit_move_strip_to_seqbase(), SEQ_edit_strip_split(), seq_get_text_strip_cb(), SEQ_modifier_list_copy(), SEQ_modifier_new(), seq_open_anim_file(), SEQ_proxy_rebuild_context(), seq_select_seq_from_preview(), SEQ_sequence_alloc(), SEQ_sound_equalizer_add(), SEQ_sound_equalizermodifier_copy_data(), sequencer_buttons_register(), sequencer_copy_animation_listbase(), sequencer_create(), sequencer_meta_make_exec(), sequencer_paste_animation(), sequencer_preview_add_sound(), blender::animrig::tests::ArmatureBoneCollections::SetUp(), blender::animrig::tests::KeyframingTest::SetUp(), blender::bke::tests::BKE_armature_find_selected_bones_test::SetUp(), blender::ed::object::shaderfx_add(), blender::ed::object::shaderfx_copy(), shaderfx_panel_register(), shaderfx_subpanel_register(), sigbus_handler_add(), sort_linked_ids(), spacedata_cleanup_exec(), splineik_init_tree_from_pchan(), split_groups_action_temp(), split_libdata(), split_main_newid(), splitlist(), blender::ed::spreadsheet::spreadsheet_create(), blender::ed::spreadsheet::spreadsheet_data_set_region_panels_register(), blender::ed::spreadsheet::spreadsheet_duplicate(), state_add_exec(), state_del_exec(), statusbar_create(), store_original_bezt_arrays(), studiolight_add_file(), task_mempool_iter_tls_func(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), testbuffer_list_add(), testchunk_list_add(), text_copy_data(), text_create(), text_from_buf(), topbar_create(), tracking_dopesheet_calc_coverage(), tracking_dopesheet_channels_calc(), tracking_objects_copy(), tracking_plane_tracks_copy(), tracking_tracks_copy(), tracks_map_merge(), AnimationImporter::translate_Animations(), txt_from_buf_for_undo(), uhandle_add(), uhandle_add_ubuf(), ui_afterfunc_new(), ui_block_add_dynamic_listener(), ui_block_add_view_impl(), UI_block_layout(), ui_but_extra_operator_icon_add_ptr(), UI_butstore_create(), UI_butstore_register(), ui_def_but(), ui_imageuser_pass_menu(), ui_list_ensure(), UI_panel_begin(), ui_panel_category_active_set(), UI_panel_category_add(), ui_region_temp_add(), ui_style_new(), ui_textedit_undo_push(), uiStyleInit(), uiTemplatePreview(), undocurve_from_editcurve(), undocurve_to_editcurve(), undofont_from_editfont(), undomball_to_editmball(), undomesh_from_editmesh(), userpref_create(), verify_driver_fcurve(), verify_socket_template_list(), version_add_group_in_out_node(), version_node_add_empty(), version_node_add_link(), version_node_add_socket(), versions_gpencil_add_main(), blender::ed::object::vgroup_duplicate(), view3d_buttons_register(), view3d_create(), view3d_ruler_to_gpencil(), blender::ed::spreadsheet::view_active_object(), blender::ed::viewer_path::viewer_path_for_geometry_node(), blender::draw::volume_grid_cache_get(), vs_add(), WM_drag_add_asset_list_item(), WM_drag_add_local_ID(), WM_draw_cb_activate(), WM_dropbox_add(), WM_dropboxmap_find(), wm_event_add_ex(), WM_event_add_keymap_handler(), WM_event_add_keymap_handler_dynamic(), WM_event_add_notifier_ex(), WM_event_start_prepared_drag(), WM_event_timer_add(), WM_event_timer_add_notifier(), WM_gesture_new(), wm_gizmogroup_gizmo_register(), wm_gizmogroup_new_from_type(), WM_gizmomap_add_handlers(), WM_gizmomaptype_group_link_ptr(), WM_gizmotype_target_property_def(), wm_handlers_do_intern(), wm_history_file_read(), WM_jobs_get(), WM_keyconfig_new(), WM_keymap_add_item(), WM_keymap_add_item_copy(), wm_keymap_copy(), wm_keymap_diff(), wm_keymap_diff_update(), WM_keymap_ensure(), wm_keymap_patch(), wm_keymap_patch_update(), WM_modalkeymap_add_item(), WM_modalkeymap_add_item_str(), WM_msg_subscribe_with_key(), wm_operator_create(), wm_operator_register(), WM_operatortype_macro_define(), WM_paint_cursor_activate(), wm_surface_add(), wm_window_new(), WM_xr_actionmap_add_copy(), WM_xr_actionmap_binding_add_copy(), wm_xr_actionmap_binding_copy(), WM_xr_actionmap_binding_new(), wm_xr_actionmap_copy(), WM_xr_actionmap_item_add_copy(), wm_xr_actionmap_item_copy(), WM_xr_actionmap_item_new(), WM_xr_actionmap_new(), wm_xr_session_controller_data_populate(), wm_xr_session_haptic_action_add(), wm_xr_session_modal_action_test_add(), wm_xr_session_surface_offscreen_ensure(), and ZstdWriteWrap::write().

◆ BLI_duplicatelist()

void BLI_duplicatelist ( ListBase * dst,
const ListBase * src )

Definition at line 807 of file listbase.cc.

References BLI_addtail(), ListBase::first, ListBase::last, MEM_dupallocN, and Link::next.

◆ BLI_findindex()

int BLI_findindex ( const ListBase * listbase,
const void * vlink )

Definition at line 585 of file listbase.cc.

References ListBase::first, and Link::next.

Referenced by BLI_listbase_link_move(), BLI_listbase_split_after(), and BLI_remlink_safe().

◆ BLI_findlink()

void * BLI_findlink ( const ListBase * listbase,
int number )

Definition at line 533 of file listbase.cc.

References ListBase::first, and Link::next.

Referenced by BLI_listbase_move_index().

◆ BLI_findlinkfrom()

void * BLI_findlinkfrom ( struct Link * start,
int step )

Returns the element before/after link that is step links away, numbering from 0. step is allowed to be negative. Returns NULL when the link is out-of-bounds.

Definition at line 563 of file listbase.cc.

References Link::next, and Link::prev.

Referenced by TEST().

◆ BLI_findptr()

void * BLI_findptr ( const ListBase * listbase,
const void * ptr,
const int offset )

Definition at line 687 of file listbase.cc.

References LISTBASE_FOREACH, and ptr.

◆ BLI_findstring()

void * BLI_findstring ( const ListBase * listbase,
const char * id,
const int offset )

Definition at line 607 of file listbase.cc.

References LISTBASE_FOREACH, and STREQ.

◆ BLI_findstring_ptr()

void * BLI_findstring_ptr ( const ListBase * listbase,
const char * id,
const int offset )

Definition at line 638 of file listbase.cc.

References LISTBASE_FOREACH, and STREQ.

◆ BLI_findstringindex()

int BLI_findstringindex ( const ListBase * listbase,
const char * id,
const int offset )

Definition at line 767 of file listbase.cc.

References ListBase::first, Link::next, and STREQ.

◆ BLI_freelinkN()

void BLI_freelinkN ( struct ListBase * listbase,
void * vlink )

Removes vlink from listbase and disposes of it. Assumes it is linked into there!

Definition at line 269 of file listbase.cc.

References BLI_remlink(), and MEM_freeN().

Referenced by _bm_select_history_remove(), action_to_animato(), ANIM_armature_bonecoll_unassign(), ANIM_armature_bonecoll_unassign_editbone(), ANIM_fcurves_copybuf_free(), ANIM_keyingset_info_unregister(), ANIM_keyingset_infos_exit(), animchannels_delete_exec(), animchannels_group_channels(), animchannels_ungroup_exec(), blender::animrig::animdata_fcurve_delete(), animdata_filter_remove_duplis(), animdata_filter_remove_invalid(), annotation_free_stroke(), BKE_asset_catalog_path_list_free(), BKE_asset_metadata_tag_remove(), BKE_collection_parent_relations_rebuild(), BKE_collections_child_remove_nulls(), BKE_constraint_apply_for_object(), BKE_constraint_apply_for_pose(), BKE_constraint_remove(), BKE_constraint_targets_flush(), BKE_freestyle_module_delete(), BKE_gpencil_free_frames(), BKE_gpencil_free_layer_masks(), BKE_gpencil_free_layers(), BKE_gpencil_layer_delete(), BKE_gpencil_layer_frame_delete(), BKE_gpencil_layer_mask_remove(), BKE_image_packfiles(), BKE_keyingset_free_path(), BKE_keyingsets_free(), BKE_lib_override_library_property_operation_delete(), BKE_linestyle_alpha_modifier_remove(), BKE_linestyle_color_modifier_remove(), BKE_linestyle_geometry_modifier_remove(), BKE_linestyle_thickness_modifier_remove(), BKE_mesh_to_curve_nurblist(), BKE_object_delete_ptcache(), BKE_pose_backup_free(), BKE_pose_channels_clear_with_null_bone(), BKE_pose_channels_remove(), BKE_pose_remove_group(), BKE_preferences_asset_library_remove(), BKE_preferences_extension_repo_remove(), BKE_ptcache_id_clear(), BKE_scene_transform_orientation_remove(), BKE_screen_area_blend_read_after_liblink(), BKE_tracking_object_delete(), BKE_tracking_plane_tracks_remove_point_track(), BKE_vfont_free_data(), BKE_view_layer_blend_read_after_liblink(), BKE_view_layer_remove_aov(), BKE_view_layer_remove_lightgroup(), BKE_workspace_layout_remove(), blo_do_versions_250(), blo_do_versions_270(), blo_do_versions_280(), blo_do_versions_290(), blo_do_versions_300(), BM_log_entry_add(), BM_log_entry_drop(), BM_select_history_merge_from_targetmap(), BM_select_history_validate(), bone_free(), bone_mouse_select_menu(), bpath_list_restore(), clean_tracks_exec(), clip_delete_plane_track(), clip_delete_track(), collection_blend_read_after_liblink(), collection_child_remove(), collection_gobject_hash_ensure_fix(), collection_missing_parents_remove(), collection_null_children_remove(), collection_object_remove_no_gobject_hash(), delete_marker_exec(), do_versions_ipos_to_animato(), do_versions_remove_region(), draw_prune_vlattrs(), driver_free_variable(), ED_area_newspace(), ED_gpencil_strokes_copybuf_free(), ed_marker_delete_exec(), ED_preview_restart_queue_work(), ED_region_remove(), edbm_strip_selections(), folder_history_entry_free(), folderlist_popdir(), frame_cache_remove(), gizmos_draw_list(), gpencil_undo_push(), gpu_node_graph_prune_unused(), ipo_free_data(), ipo_to_animato(), join_tracks_exec(), lib_override_library_property_delete(), lib_override_library_resync(), link_recurs_seq(), nlastrips_to_animdata(), object_defgroup_remove_common(), object_mouse_select_menu(), poseAnim_mapping_free(), preferences_autoexec_remove_exec(), psys_check_group_weights(), RE_create_gp_pass(), read_library_clear_weak_links(), rearrange_animchannel_flatten_islands(), rearrange_animchannels_filter_visible(), regions_remove_invalid(), remove_active_keyingset_exec(), remove_fmodifier(), remove_tagged_functions(), removeSnapPoint(), render_result_free(), select_cache_populate(), separate_armature_bones(), SEQ_relations_sequence_free_anim(), sigbus_handler_remove(), splineik_execute_tree(), ui_region_temp_remove(), view_layer_bases_hash_create(), wm_clear_recent_files_exec(), WM_drag_free(), wm_history_file_free(), wm_keymap_diff_update(), wm_keymap_patch(), wm_keymap_patch_update(), WM_keymap_remove_item(), WM_keymap_restore_to_default(), WM_xr_action_destroy(), WM_xr_actionmap_binding_remove(), WM_xr_actionmap_item_remove(), WM_xr_actionmap_remove(), wm_xr_session_controller_data_free(), wm_xr_session_haptic_action_remove(), wm_xr_session_haptic_timers_check(), wm_xr_session_modal_action_remove(), wm_xr_session_surface_free_data(), and workspace_blend_read_after_liblink().

◆ BLI_freelist()

void BLI_freelist ( struct ListBase * listbase)

Removes and disposes of the entire contents of listbase using direct free(3).

Definition at line 482 of file listbase.cc.

References BLI_listbase_clear(), ListBase::first, free(), Link::next, and next.

Referenced by bli_builddir().

◆ BLI_freelistN()

void BLI_freelistN ( struct ListBase * listbase)

Removes and disposes of the entire contents of listbase using guardedalloc.

Definition at line 496 of file listbase.cc.

References BLI_listbase_clear(), ListBase::first, MEM_freeN(), Link::next, and next.

Referenced by blender::bke::action_free_data(), action_set_destroy(), action_to_animato(), actkeys_mselect_column(), ANIM_animdata_freelist(), ANIM_armature_bonecoll_reconstruct(), blender::animrig::ANIM_bonecoll_array_free(), animsys_evaluate_nla_for_flush(), animsys_evaluate_nla_for_keyframing(), apply_fcu_segment_function(), area_azone_init(), armature_fill_bones_exec(), armature_flip_names_exec(), armature_free_data(), armature_switch_direction_exec(), armdef_free(), BIF_clearTransformOrientation(), BKE_animsys_free_nla_keyframing_context_cache(), BKE_area_region_free(), BKE_armature_bonelist_free(), BKE_autotrack_context_free(), BKE_blender_userdef_data_free(), BKE_bpath_list_free(), BKE_cachefile_eval(), BKE_collider_cache_free(), BKE_collision_relations_free(), BKE_constraints_free_ex(), BKE_cryptomatte_matte_id_to_entries(), BKE_effector_relations_free(), BKE_effectors_free(), BKE_fcurve_merge_duplicate_keys(), BKE_freestyle_config_free(), BKE_gpencil_free_data(), BKE_gpencil_free_legacy_palette_data(), BKE_image_free_views(), BKE_image_signal(), BKE_layer_collection_sync(), BKE_lib_override_library_clear(), BKE_lib_override_library_create_from_tag(), BKE_main_collections_parent_relations_rebuild(), BKE_mesh_legacy_face_map_to_generic(), BKE_mesh_to_curve_nurblist(), BKE_object_data_transfer_ex(), BKE_palette_clear(), BKE_panel_free(), BKE_pose_channels_free_ex(), BKE_pose_free_data_ex(), BKE_ptcache_bake(), BKE_ptcache_free_mem(), BKE_ptcache_id_clear(), BKE_ptcache_id_find(), BKE_screen_area_free(), BKE_screen_area_map_free(), BKE_spacedata_freelist(), BKE_stamp_data_free(), BKE_view_layer_free_ex(), BKE_view_layer_free_object_content(), BLI_args_destroy(), BLI_box_pack_2d_fixedarea(), BLI_dlrbTree_free(), BLI_threadpool_end(), blo_do_versions_250(), blo_do_versions_400(), blo_filedata_free(), blo_update_defaults_screen(), BM_edgeloop_free(), BM_mesh_data_free(), BM_select_history_clear(), boid_free_settings(), bone_free(), bone_mouse_select_menu(), btw_smooth_free_operator_data(), btw_smooth_graph_keys(), cache_file_free_data(), camera_free_data(), clear_attribute_names(), ZstdWriteWrap::close(), collection_free_data(), collection_object_cache_free(), blender::ed::outliner::collection_objects_select_exec(), colormanage_free_config(), columnselect_action_keys(), columnselect_graph_keys(), constraintTransLim(), create_scene(), decimate_fcurve(), do_version_area_change_space_to_space_action(), do_version_layers_to_collections(), do_version_workspaces_after_lib_link(), do_versions_after_linking_280(), DRW_drawdata_free(), DRW_smoke_exit(), DRW_viewport_data_free(), ease_graph_keys(), ED_area_data_copy(), ED_armature_ebone_listbase_free(), ED_armature_edit_free(), ED_channel_list_free(), ED_image_filesel_detect_sequences(), ED_markers_draw(), ED_outliner_selected_objects_get(), ED_pose_recalculate_paths(), ED_preview_icon_render(), ED_preview_restart_queue_free(), edit_uv_stretching_update_ratios(), blender::ed::object::editmode_exit_ex(), blender::geometry::execute_realize_mesh_tasks(), find_nearest_fcurve_vert(), free_buffers(), free_object_duplilist(), free_openrecent(), free_posetree(), free_preview_job(), gaussian_smooth_free_operator_data(), gaussian_smooth_graph_keys(), get_selected_marker_positions(), get_udim_tiles(), gpencil_undo_finish(), gpu_inputs_free(), GPU_material_free(), gpu_node_free(), gpu_node_graph_free(), gpu_select_pick_cache_end(), gpu_texture_create_tile_array(), GPU_uniform_attr_list_free(), graph_free(), graph_slider_exit(), graphkeys_euler_filter_exec(), graphkeys_mselect_column(), graphview_curves_hide_exec(), graphview_curves_reveal_exec(), grease_pencil_free_data(), icon_preview_free(), IDP_FreeGroup(), image_free_data(), image_open_exec(), IMB_exr_clear_channels(), IMB_exr_close(), lattice_free_data(), lib_override_library_property_clear(), match_slope_graph_keys(), merge_nurb(), metaball_free_data(), blender::ed::object::motion_paths_recalc(), blender::ed::object::motion_paths_recalc_selected(), blender::ed::object::motion_paths_recalc_visible(), blender::ed::object::move_to_collection_exec(), blender::ed::object::move_to_collection_invoke(), move_vertex_group_names_to_object_data(), blender::ed::object::multiresbake_freejob(), blender::ed::object::multiresbake_image_exec_locked(), nla_free(), nlaeval_free(), nlastrip_shuffle_transformed(), nlastrips_to_animdata(), blender::ed::space_node::node_free(), blender::nodes::node_composite_cryptomatte_cc::node_free_cryptomatte(), blender::ed::space_node::node_id_remap(), blender::bke::ntree_free_data(), ntreeCompositCryptomatteUpdateLayerNames(), ntreeShaderEndExecTree_internal(), ntreeTexEndExecTree_internal(), object_cacheIgnoreClear(), object_free_data(), object_lib_override_apply_post(), object_mouse_select_menu(), blender::ed::outliner::outliner_color_tag_set_exec(), blender::ed::outliner::outliner_item_drag_drop_invoke(), palette_free_data(), panel_delete(), particle_settings_blend_read_after_liblink(), particle_settings_free_data(), pe_get_current(), peelObjectsTransform(), pose_clear_user_transforms_exec(), pose_flip_names_exec(), pose_propagate_exec(), poseAnim_mapping_free(), postTrans(), blender::ed::space_node::preview_render(), preview_startjob(), project_paint_prepare_all_faces(), proxy_freejob(), psys_check_group_weights(), psys_free(), psys_free_path_cache_buffers(), ptcache_extra_free(), ptcache_free_bake_all_exec(), pycon_free(), pyrna_struct_dir(), rearrange_action_channels(), rearrange_driver_channels(), rearrange_gpencil_channels(), rearrange_grease_pencil_channels(), rearrange_layered_action_channel_groups(), rearrange_nla_control_channels(), rearrange_nla_tracks(), RNA_parameter_list_free(), scale_from_neighbor_graph_keys(), scanfill_preprocess_self_isect(), scene_free_data(), screen_free_data(), seq_disk_cache_enforce_limits(), seq_disk_cache_free(), SEQ_editing_free(), SEQ_meta_stack_set(), seq_select_seq_from_preview(), setflag_anim_channels(), blender::ed::object::shaderfx_link(), shear_graph_keys(), snap_multipoints_free(), special_aftertrans_update__object(), TEST(), TEST(), TEST(), TEST(), TEST(), timeline_draw_cache(), tracking_dopesheet_free(), tracking_objects_free(), tracking_plane_tracks_free(), tracking_tracks_free(), blender::ed::outliner::tree_element_to_path(), UI_block_free(), UI_butstore_free(), ui_imageuser_pass_menu(), UI_panel_category_clear_all(), ui_popup_block_position(), UI_style_init_default(), ui_textedit_undo_stack_destroy(), userdef_free_keymaps(), blender::ed::object::vgroup_array_copy(), blender::draw::volume_batch_cache_clear(), blender::ed::object::volume_import_exec(), wm_close_and_free(), WM_drag_free(), wm_dropbox_free(), WM_gizmotype_free_ptr(), wm_main_playanim_intern(), wm_operatortype_free_macro(), WM_xr_action_set_destroy(), wm_xr_actionmap_binding_clear(), WM_xr_actionmap_clear(), wm_xr_actionmap_item_clear(), WM_xr_actionmaps_clear(), WM_xr_active_action_set_set(), wm_xr_session_surface_free_data(), workspace_add_invoke(), workspace_free_data(), AnimKeylist::~AnimKeylist(), blender::bke::CurvesGeometry::~CurvesGeometry(), GPUCodegen::~GPUCodegen(), and SpaceType::~SpaceType().

◆ BLI_genericNodeN()

◆ BLI_insertlinkafter()

void BLI_insertlinkafter ( struct ListBase * listbase,
void * vprevlink,
void * vnewlink )

Inserts vnewlink immediately following vprevlink in listbase. Or, if vprevlink is NULL, puts vnewlink at the front of the list.

Definition at line 331 of file listbase.cc.

References ListBase::first, ListBase::last, Link::next, and Link::prev.

Referenced by _bm_select_history_store_after_notest(), action_groups_add_channel(), blender::bke::greasepencil::LayerGroup::add_node_after(), BKE_collection_move(), BKE_gpencil_layer_addnew(), BKE_key_sort(), BKE_nlastrips_sort_strips(), BKE_nlatrack_insert_after(), BLI_listbase_link_move(), BLI_listbases_swaplinks(), blo_do_versions_260(), blo_do_versions_280(), blo_do_versions_300(), BM_edgeloop_expand(), buffer_from_list_inputs_sort(), cmp_node_image_add_pass_output(), collection_duplicate_recursive(), blender::ed::object::constraint_move_down_exec(), do_version_bbone_scale_fcurve_fix(), do_versions_add_region_if_not_found(), do_versions_after_linking_300(), do_versions_area_ensure_tool_region(), do_versions_ensure_region(), dupliob_move_down_exec(), ED_gpencil_layer_frames_duplicate(), ED_keylist_add_or_update_column(), ED_masklayer_frames_duplicate(), id_sort_by_name(), IDP_InsertToGroup(), image_add_view(), lineart_shadow_edge_cut(), mask_layer_move_exec(), ml_addview_cb(), blender::ed::object::modifier_copy(), blender::ed::object::modifier_move_to_index(), blender::bke::greasepencil::LayerGroup::move_node_top(), nlaedit_add_transition_exec(), nlaedit_split_strip_actclip(), blender::ed::space_node::node_output_file_move_active_socket_exec(), order_collection_receiver_after(), order_object_receiver_after(), blender::ed::outliner::outliner_extract_children_from_subtree(), rearrange_island_down(), rebuild_pose_bone(), rule_move_down_exec(), scanfill_preprocess_self_isect(), blender::ed::object::shaderfx_copy_exec(), blender::ed::object::shaderfx_move_down(), blender::ed::object::skin_armature_create_exec(), state_move_down_exec(), strip_modifier_move_exec(), target_move_down_exec(), text_has_properties_region(), txt_duplicate_line(), txt_move_lines(), ui_but_change_type(), ui_but_update_from_old_block(), UI_panel_begin(), uiItemFullR(), wm_event_add_ex(), and wm_handler_operator_insert().

◆ BLI_insertlinkbefore()

void BLI_insertlinkbefore ( struct ListBase * listbase,
void * vnextlink,
void * vnewlink )

Inserts vnewlink immediately preceding vnextlink in listbase. Or, if vnextlink is NULL, puts vnewlink at the end of the list.

Definition at line 370 of file listbase.cc.

References ListBase::first, ListBase::last, Link::next, and Link::prev.

Referenced by action_groups_add_channel(), blender::ed::object::add_hook_object(), add_marker_to_cfra_elem(), blender::bke::greasepencil::LayerGroup::add_node_before(), addedgetoscanvert(), area_add_window_regions(), BKE_collection_move(), BKE_curve_bevelList_make(), BKE_gpencil_frame_addcopy(), BKE_gpencil_frame_addnew(), BKE_gpencil_stroke_delete_tagged_points(), BKE_image_add_tile(), BKE_main_mesh_legacy_convert_auto_smooth(), BKE_nlastrips_add_strip_unsafe(), BKE_nlastrips_clear_metastrip(), BKE_nlastrips_make_metas(), BKE_nlatrack_insert_before(), BKE_object_copy_modifier(), BLI_listbase_link_move(), blo_do_versions_250(), blo_do_versions_280(), blo_do_versions_pre250(), BM_edgeloop_expand(), colormanage_colorspace_add(), blender::ed::object::constraint_move_up_exec(), do_version_action_editor_properties_region(), drw_register_shader_vlattrs(), dupliob_move_up_exec(), ED_keylist_add_or_update_column(), hud_region_add(), id_sort_by_name(), insert_seam_vert_array(), blender::bke::greasepencil::convert::legacy_object_modifier_common(), lineart_edge_cut(), lineart_shadow_edge_cut(), mask_layer_move_exec(), blender::ed::object::modifier_add(), blender::ed::object::modifier_move_to_index(), blender::bke::greasepencil::LayerGroup::move_node_bottom(), blender::ed::space_node::node_output_file_move_active_socket_exec(), order_collection_receiver_before(), order_object_receiver_before(), rearrange_island_bottom(), rearrange_island_top(), rearrange_island_up(), rule_move_up_exec(), scanfill(), blender::ed::object::shaderfx_move_up(), state_move_up_exec(), strip_modifier_move_exec(), target_move_up_exec(), txt_insert_buf(), txt_move_lines(), txt_split_curline(), verify_socket_template_list(), and wm_keymap_patch().

◆ BLI_insertlinkreplace()

void BLI_insertlinkreplace ( ListBase * listbase,
void * vreplacelink,
void * vnewlink )

Definition at line 409 of file listbase.cc.

References ListBase::first, ListBase::last, Link::next, and Link::prev.

◆ BLI_listbase_bytes_find()

void * BLI_listbase_bytes_find ( const ListBase * listbase,
const void * bytes,
const size_t bytes_size,
const int offset )

Definition at line 712 of file listbase.cc.

References LISTBASE_FOREACH.

◆ BLI_listbase_bytes_rfind()

void * BLI_listbase_bytes_rfind ( const ListBase * listbase,
const void * bytes,
const size_t bytes_size,
const int offset )

Definition at line 726 of file listbase.cc.

References LISTBASE_FOREACH_BACKWARD.

◆ BLI_listbase_count()

int BLI_listbase_count ( const ListBase * listbase)

Definition at line 523 of file listbase.cc.

References count, and LISTBASE_FOREACH.

◆ BLI_listbase_count_at_most()

int BLI_listbase_count_at_most ( const ListBase * listbase,
const int count_max )

Definition at line 510 of file listbase.cc.

References count, ListBase::first, and Link::next.

◆ BLI_listbase_findafter_string_ptr()

void * BLI_listbase_findafter_string_ptr ( struct Link * link,
const char * id,
const int offset )

Finds the first element in the listbase after the given link element which contains a pointer to the null-terminated string id at the specified offset, returning NULL if not found.

Definition at line 671 of file listbase.cc.

References Link::next, and STREQ.

Referenced by BKE_libblock_find_name(), and liboverride_opop_find_name_lib_iterative().

◆ BLI_listbase_from_link()

ListBase BLI_listbase_from_link ( struct Link * some_link)

Return a ListBase representing the entire list the given Link is in.

Definition at line 787 of file listbase.cc.

References Link::next, next, and Link::prev.

Referenced by BKE_collection_exporter_name_set(), BKE_fmodifier_name_set(), driver_variable_unique_name(), and TEST().

◆ BLI_listbase_link_move()

◆ BLI_listbase_move_index()

bool BLI_listbase_move_index ( ListBase * listbase,
int from,
int to )

Move the link at the index from to the position at index to.

Returns
If the move was successful.

Definition at line 466 of file listbase.cc.

References BLI_findlink(), and BLI_listbase_link_move().

◆ BLI_listbase_reverse()

void BLI_listbase_reverse ( ListBase * lb)

◆ BLI_listbase_rotate_first()

void BLI_listbase_rotate_first ( ListBase * lb,
void * vlink )

Definition at line 842 of file listbase.cc.

References ListBase::first, ListBase::last, Link::next, and Link::prev.

◆ BLI_listbase_rotate_last()

void BLI_listbase_rotate_last ( ListBase * lb,
void * vlink )

Definition at line 855 of file listbase.cc.

References ListBase::first, ListBase::last, and Link::next.

◆ BLI_listbase_sort()

void BLI_listbase_sort ( ListBase * listbase,
int(* cmp )(const void *, const void *) )

Definition at line 311 of file listbase.cc.

References ListBase::first, ListBase::last, and listbase_double_from_single().

◆ BLI_listbase_sort_r()

void BLI_listbase_sort_r ( ListBase * listbase,
int(* cmp )(void *, const void *, const void *),
void * thunk )

Definition at line 320 of file listbase.cc.

References ListBase::first, ListBase::last, and listbase_double_from_single().

◆ BLI_listbase_split_after()

void BLI_listbase_split_after ( ListBase * original_listbase,
ListBase * split_listbase,
void * vlink )

◆ BLI_listbase_string_or_index_find()

void * BLI_listbase_string_or_index_find ( const ListBase * listbase,
const char * string,
const size_t string_offset,
const int index )

Definition at line 741 of file listbase.cc.

References ListBase::first, Link::next, and STREQ.

◆ BLI_listbase_swaplinks()

void BLI_listbase_swaplinks ( ListBase * listbase,
void * vlinka,
void * vlinkb )

Definition at line 163 of file listbase.cc.

References ListBase::first, ListBase::last, Link::next, and Link::prev.

◆ BLI_listbase_validate()

bool BLI_listbase_validate ( struct ListBase * lb)

Validate the integrity of a given ListBase.

Returns
true if everything is OK, false otherwise.

Definition at line 868 of file listbase.cc.

References ELEM, ListBase::first, ListBase::last, LISTBASE_FOREACH, and LISTBASE_FOREACH_BACKWARD.

Referenced by BKE_collection_validate().

◆ BLI_listbases_swaplinks()

void BLI_listbases_swaplinks ( ListBase * listbasea,
ListBase * listbaseb,
void * vlinka,
void * vlinkb )

Definition at line 216 of file listbase.cc.

References BLI_insertlinkafter(), and BLI_remlink().

◆ BLI_movelisttolist()

void BLI_movelisttolist ( ListBase * dst,
ListBase * src )

Definition at line 24 of file listbase.cc.

References ListBase::first, ListBase::last, and Link::prev.

◆ BLI_movelisttolist_reverse()

void BLI_movelisttolist_reverse ( ListBase * dst,
ListBase * src )

Definition at line 42 of file listbase.cc.

References ListBase::first, ListBase::last, and Link::prev.

◆ BLI_pophead()

◆ BLI_poptail()

void * BLI_poptail ( ListBase * listbase)

Removes the tail from listbase and returns it.

Definition at line 260 of file listbase.cc.

References BLI_remlink(), and ListBase::last.

Referenced by blender::animrig::tests::TEST_F(), and wm_event_free_last().

◆ BLI_remlink()

void BLI_remlink ( struct ListBase * listbase,
void * vlink )

Removes vlink from listbase. Assumes it is linked into there!

Warning
Does not clear the prev/next pointers of the removed vlink.

Definition at line 130 of file listbase.cc.

References ListBase::first, ListBase::last, Link::next, and Link::prev.

Referenced by act_markers_make_local_exec(), blender::animrig::legacy::action_fcurves_remove(), action_groups_remove_channel(), blender::ed::asset::shelf::activate_shelf(), actkeys_find_list_element_at_position(), ANIM_keyingset_info_unregister(), ANIM_remove_driver(), animchannels_delete_exec(), blender::animrig::animdata_fcurve_delete(), animdata_move_drivers_by_basepath(), area_init_type_fallback(), blender::ed::object::bake(), BKE_addon_remove_safe(), BKE_blendfile_library_relocate(), BKE_cachefile_remove_layer(), BKE_callback_remove(), BKE_camera_background_image_remove(), BKE_collection_move(), BKE_curve_bevelList_make(), BKE_freestyle_lineset_delete(), BKE_gpencil_stroke_delete_tagged_points(), BKE_image_remove_renderslot(), BKE_key_sort(), BKE_keyconfig_keymap_filter_item(), BKE_libblock_management_main_remove(), BKE_mask_layer_free_list(), BKE_mask_layer_free_shapes(), BKE_mask_layer_remove(), BKE_mask_layer_shape_unlink(), BKE_mask_spline_free_list(), BKE_maskrasterize_handle_init(), BKE_modifier_remove_from_list(), BKE_nla_action_stash(), BKE_nlastrip_remove(), BKE_nlastrips_clear_metastrip(), BKE_nlastrips_make_metas(), BKE_nlastrips_sort_strips(), BKE_nlatrack_remove(), BKE_object_handle_data_update(), BKE_object_shapekey_remove(), BKE_packedfile_unpack_image(), BKE_palette_color_remove(), BKE_particle_system_blend_read_after_liblink(), BKE_scene_remove_render_view(), BKE_screen_area_map_blend_read_data(), BKE_screen_remove_double_scredges(), BKE_screen_remove_double_scrverts(), BKE_screen_remove_unused_scredges(), BKE_screen_remove_unused_scrverts(), BKE_studiolight_remove(), BKE_workspace_tool_remove(), BLI_array_store_state_remove(), BLI_box_pack_2d_fixedarea(), BLI_freelinkN(), BLI_listbase_link_move(), BLI_listbases_swaplinks(), BLI_pophead(), BLI_poptail(), BLI_remlink_safe(), BLI_scanfill_calc_ex(), BLI_scanfill_calc_self_isect(), blo_do_versions_280(), blo_join_main(), BM_faces_join(), BM_mesh_edgeloops_calc_order(), bm_uidwalk_facestep_free(), BMO_error_pop(), BMO_mesh_selected_remap(), BMW_state_remove(), bpy_prop_py_data_remove(), buffer_from_list_inputs_sort(), blender::ed::outliner::TreeDisplayLibraries::build_tree(), cmp_node_image_add_pass_output(), collection_duplicate_recursive(), blender::ed::object::collection_exporter_remove_exec(), console_blend_read_data(), console_history_free(), console_scrollback_free(), console_scrollback_prompt_end(), blender::ed::object::constraint_move_down_exec(), blender::ed::object::constraint_move_up_exec(), create_scene(), cryptomatte_remove(), delete_exec(), delete_metaelems_exec(), delete_nurb(), direct_link_library(), DRW_instance_data_list_free(), drw_registered_engines_free(), dupliob_move_down_exec(), dupliob_move_up_exec(), dynamicPaint_freeSurface(), ED_area_newspace(), ED_armature_join_objects_exec(), ED_curve_add_nurbs_primitive(), ed_curve_delete_selected(), ED_curve_updateAnimPaths(), ED_node_tree_pop(), ED_region_draw_cb_exit(), ED_region_draw_cb_remove_by_type(), ED_scene_view_layer_delete(), ED_screen_user_menu_item_remove(), ed_surf_delete_selected(), ED_view3d_cursor_snap_state_free(), blender::ed::outliner::TreeElementPoseBase::expand(), blender::bke::greasepencil::convert::AnimDataConvertor::fcurves_convert_finalize(), fcurves_path_remove_from_listbase(), filelist_file_release_entry(), filelist_intern_free_main_files(), flatten_group_do(), frame_cache_touch(), get_active_fcurve_channel(), get_best_nearest_fcurve_vert(), gpencil_stroke_join_islands(), gpu_batch_presets_unregister(), gpu_node_graph_prune_unused(), blender::ed::greasepencil::grease_pencil_layer_mask_remove_exec(), id_delete(), id_free(), id_sort_by_name(), IDP_RemoveFromGroup(), iksolver_clear_data(), iksolver_execute_tree(), image_blend_read_data(), image_free_anims(), image_free_packedfiles(), image_remove_tile(), image_update_views_format(), IMB_exr_close(), initialize_posetree(), join_groups_action_temp(), knife_split_edge(), layer_collection_objects_sync(), layer_collection_sync(), lineart_chain_fix_ambiguous_segments(), lineart_edge_cut(), lineart_list_remove_pointer_item_no_free(), make_segment_exec(), make_selection_list_nurb(), mask_layer_move_exec(), mask_shape_key_rekey_exec(), menu_items_from_ui_create(), merge_2_nurb(), MOD_lineart_chain_connect(), MOD_lineart_chain_discard_unused(), MOD_lineart_smooth_chains(), blender::ed::object::modifier_copy(), blender::ed::object::modifier_move_to_index(), blender::bke::greasepencil::LayerGroup::move_node_bottom(), blender::bke::greasepencil::LayerGroup::move_node_top(), nlaedit_snap_exec(), nlaedit_strip_at_region_position(), nlaedit_swap_exec(), blender::bke::node_add_socket(), blender::ed::space_node::node_foreach_id(), blender::bke::node_free_node(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_group_separate_selected(), blender::ed::space_node::node_group_ungroup(), blender::ed::space_node::node_id_remap(), blender::ed::space_node::node_output_file_move_active_socket_exec(), blender::bke::node_remove_link(), blender::bke::node_remove_socket_ex(), object_blend_read_data(), object_remove_particle_system(), blender::ed::object::object_shaderfx_remove(), order_collection_receiver_after(), order_collection_receiver_before(), order_object_receiver_after(), order_object_receiver_before(), blender::ed::outliner::outliner_extract_children_from_subtree(), blender::ed::outliner::outliner_free_tree_element(), blender::ed::outliner::outliner_make_object_parent_hierarchy(), panel_delete(), blender::interface::internal::paste_property_drivers(), pose_grab_with_ik_clear(), blender::ed::space_node::preview_render(), preview_startjob(), ptcache_remove_exec(), RE_engine_end_result(), RE_engines_exit(), read_libblock_undo_restore_at_old_address(), read_libblock_undo_restore_identical(), read_library_linked_ids(), read_undo_move_libmain_data(), rearrange_animchannel_add_to_islands(), rearrange_island_bottom(), rearrange_island_down(), rearrange_island_top(), rearrange_island_up(), rebuild_pose_bone(), recalcData_nla(), remove_particle_dupliob_exec(), remove_particle_systems_from_object(), remove_particle_target_exec(), blender::bke::remove_unsupported_sockets(), render_result_free(), render_result_free_list(), render_result_single_layer_end(), render_result_views_free(), render_result_views_shallowdelete(), repeat_history_exec(), report_delete_exec(), blender::ed::spreadsheet::row_filter_remove_exec(), rule_del_exec(), rule_move_down_exec(), rule_move_up_exec(), scanfill(), scanfill_preprocess_self_isect(), scene_blend_read_after_liblink(), scene_free_data(), screen_delarea(), screen_opengl_views_setup(), seq_convert_transform_animation(), SEQ_cut_one_way_connections(), SEQ_disconnect(), seq_disk_cache_delete_file(), SEQ_edit_move_strip_to_seqbase(), SEQ_edit_remove_flagged_sequences(), SEQ_edit_strip_split(), SEQ_free_animdata(), SEQ_meta_stack_pop(), SEQ_modifier_remove(), sequencer_meta_make_exec(), blender::ed::space_node::shader_preview_free(), shader_preview_free(), blender::ed::object::shaderfx_move_down(), blender::ed::object::shaderfx_move_up(), blender::ed::object::single_object_users_collection(), sort_linked_ids(), spacedata_cleanup_exec(), split_libdata(), split_main_newid(), splitlist(), state_del_exec(), state_move_down_exec(), state_move_up_exec(), strip_modifier_copy_exec(), strip_modifier_move_exec(), strip_modifier_remove_exec(), swap_wm_data_for_blendfile(), target_move_down_exec(), target_move_up_exec(), tracks_map_merge(), blender::bke::CurvesVertexGroupsAttributeProvider::try_delete(), blender::bke::MeshVertexGroupsAttributeProvider::try_delete(), txt_delete_line(), txt_move_lines(), ui_apply_but_funcs_after(), UI_blocklist_free_inactive(), UI_but_active_only_ex(), ui_but_change_type(), ui_but_update_from_old_block(), UI_butstore_free(), UI_butstore_unregister(), UI_panel_begin(), ui_panel_category_active_set(), UI_popover_end(), ui_textedit_undo_push(), uiItemFullR(), undofont_free_data(), undomesh_free_data(), undosys_step_free_and_unlink(), blender::ed::spreadsheet::update_visible_columns(), uvedit_pack_islands_multi(), blender::bke::greasepencil::validate_drawing_vertex_groups(), verify_socket_template(), version_geometry_nodes_extrude_smooth_propagation(), version_geometry_nodes_primitive_uv_maps(), blender::ed::object::vgroup_sort_bone_hierarchy(), WM_draw_cb_exit(), wm_event_add_mousemove_to_head(), wm_event_do_handlers(), wm_event_do_notifiers(), WM_event_free_ui_handler_all(), WM_event_remove_area_handler(), WM_event_remove_keymap_handler(), WM_event_remove_model_handler(), WM_event_remove_ui_handler(), WM_gesture_end(), WM_gizmo_unlink(), wm_gizmogroup_free(), WM_gizmomaptype_group_unlink(), wm_handler_fileselect_do(), wm_handler_operator_call(), wm_handlers_do_intern(), wm_history_file_update(), wm_job_free(), WM_keyconfig_remove(), WM_keymap_remove(), wm_macro_modal(), WM_main_remove_notifier_reference(), wm_msg_rna_remove_by_id(), wm_msg_rna_update_by_id(), wm_msg_static_gset_key_free(), wm_msg_subscribe_value_free(), WM_msgbus_clear_by_owner(), WM_operator_free_all_after(), wm_operator_register(), WM_paint_cursor_end(), WM_paint_cursor_remove_by_type(), wm_surface_remove(), wm_window_close(), wm_window_timers_delete_removed(), workspace_relation_ensure_updated(), workspace_relation_remove(), and ZstdWriteWrap::write().

◆ BLI_remlink_safe()

◆ BLI_rfindlink()

void * BLI_rfindlink ( const ListBase * listbase,
int number )

Definition at line 548 of file listbase.cc.

References ListBase::last, and Link::prev.

◆ BLI_rfindptr()

void * BLI_rfindptr ( const ListBase * listbase,
const void * ptr,
const int offset )

Definition at line 698 of file listbase.cc.

References LISTBASE_FOREACH_BACKWARD, and ptr.

◆ BLI_rfindstring()

void * BLI_rfindstring ( const ListBase * listbase,
const char * id,
const int offset )

Definition at line 625 of file listbase.cc.

References LISTBASE_FOREACH_BACKWARD, and STREQ.

◆ BLI_rfindstring_ptr()

void * BLI_rfindstring_ptr ( const ListBase * listbase,
const char * id,
const int offset )

Definition at line 653 of file listbase.cc.

References LISTBASE_FOREACH_BACKWARD, and STREQ.

◆ listbase_double_from_single()

static void listbase_double_from_single ( Link * iter,
ListBase * listbase )
static

Assigns all Link.prev pointers from Link.next

Definition at line 284 of file listbase.cc.

References ListBase::first, ListBase::last, Link::next, and Link::prev.

Referenced by BLI_listbase_sort(), and BLI_listbase_sort_r().