diff options
author | Hans Goudey <h.goudey@me.com> | 2021-11-19 23:36:32 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-11-19 23:36:32 +0300 |
commit | 51a7961e0984468e8ee6e5f9313e3884ba46d69d (patch) | |
tree | 103ea126fa0d98ba9fb389595b3180183da1f44c /source/blender/editors/space_node/space_node.cc | |
parent | c3fed4d463f07b8bfcecf98ed91256cf4e561e81 (diff) |
Cleanup: Simplify node editor link dragging storage
Now that `node_intern.hh` is a C++ header, we can use C++ types
there. This patch replaces the linked list of dragged links with a
vector. Also, the list of drag operator custom data, `nldrag`, doesn't
seem to need to be a list at all, so I just made it a unique pointer.
Differential Revision: https://developer.blender.org/D13252
Diffstat (limited to 'source/blender/editors/space_node/space_node.cc')
-rw-r--r-- | source/blender/editors/space_node/space_node.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source/blender/editors/space_node/space_node.cc b/source/blender/editors/space_node/space_node.cc index 784cf7d4dd8..ac64503cfc9 100644 --- a/source/blender/editors/space_node/space_node.cc +++ b/source/blender/editors/space_node/space_node.cc @@ -303,7 +303,10 @@ static void node_free(SpaceLink *sl) MEM_freeN(path); } - MEM_SAFE_FREE(snode->runtime); + if (snode->runtime) { + snode->runtime->linkdrag.reset(); + MEM_freeN(snode->runtime); + } } /* spacetype; init callback */ @@ -534,10 +537,7 @@ static SpaceLink *node_duplicate(SpaceLink *sl) BLI_duplicatelist(&snoden->treepath, &snode->treepath); - if (snode->runtime != nullptr) { - snoden->runtime = (SpaceNode_Runtime *)MEM_dupallocN(snode->runtime); - BLI_listbase_clear(&snoden->runtime->linkdrag); - } + snoden->runtime = nullptr; /* NOTE: no need to set node tree user counts, * the editor only keeps at least 1 (id_us_ensure_real), |