diff --git a/source/blender/blenkernel/BKE_grease_pencil.hh b/source/blender/blenkernel/BKE_grease_pencil.hh index 27f97f2c156..dc7a36c83b0 100644 --- a/source/blender/blenkernel/BKE_grease_pencil.hh +++ b/source/blender/blenkernel/BKE_grease_pencil.hh @@ -211,7 +211,7 @@ class Layer; * forwarded to #TreeNode. */ #define TREENODE_COMMON_METHODS \ StringRefNull name() const; \ - void set_name(StringRefNull new_name); \ + void set_name(StringRef new_name); \ bool is_visible() const; \ void set_visible(bool visible); \ bool is_locked() const; \ @@ -230,7 +230,7 @@ class Layer; { \ return this->as_node().name(); \ } \ - inline void class_name::set_name(StringRefNull new_name) \ + inline void class_name::set_name(const StringRef new_name) \ { \ return this->as_node().set_name(new_name); \ } \ @@ -288,7 +288,7 @@ class TreeNode : public ::GreasePencilLayerTreeNode { public: TreeNode(); explicit TreeNode(GreasePencilLayerTreeNodeType type); - explicit TreeNode(GreasePencilLayerTreeNodeType type, StringRefNull name); + explicit TreeNode(GreasePencilLayerTreeNodeType type, StringRef name); TreeNode(const TreeNode &other); ~TreeNode(); @@ -338,7 +338,7 @@ static_assert(sizeof(TreeNode) == sizeof(::GreasePencilLayerTreeNode)); class LayerMask : public ::GreasePencilLayerMask { public: LayerMask(); - explicit LayerMask(StringRefNull name); + explicit LayerMask(StringRef name); LayerMask(const LayerMask &other); ~LayerMask(); }; @@ -440,7 +440,7 @@ class Layer : public ::GreasePencilLayer { using SortedKeysIterator = const int *; Layer(); - explicit Layer(StringRefNull name); + explicit Layer(StringRef name); Layer(const Layer &other); ~Layer(); @@ -587,14 +587,14 @@ class Layer : public ::GreasePencilLayer { * armature. */ StringRefNull parent_bone_name() const; - void set_parent_bone_name(const char *new_name); + void set_parent_bone_name(const StringRef new_name); /** * Returns the view layer name that this layer should be rendered in or an empty * `StringRefNull` if no such name is set. */ StringRefNull view_layer_name() const; - void set_view_layer_name(const char *new_name); + void set_view_layer_name(const StringRef new_name); private: /** @@ -649,7 +649,7 @@ class LayerGroup : public ::GreasePencilLayerTreeGroup { public: LayerGroup(); - explicit LayerGroup(StringRefNull name); + explicit LayerGroup(StringRef name); LayerGroup(const LayerGroup &other); ~LayerGroup(); @@ -700,8 +700,8 @@ class LayerGroup : public ::GreasePencilLayerTreeGroup { /** * Returns a pointer to the node with \a name. If no such node was found, returns nullptr. */ - const TreeNode *find_node_by_name(StringRefNull name) const; - TreeNode *find_node_by_name(StringRefNull name); + const TreeNode *find_node_by_name(StringRef name) const; + TreeNode *find_node_by_name(StringRef name); /** * Returns true if the group is expanded in the UI. @@ -715,7 +715,7 @@ class LayerGroup : public ::GreasePencilLayerTreeGroup { /** * Print the nodes. For debugging purposes. */ - void print_nodes(StringRefNull header) const; + void print_nodes(StringRef header) const; /** * Prepare the DNA #GreasePencilLayerTreeGroup data before blend-file writing. diff --git a/source/blender/blenkernel/intern/grease_pencil.cc b/source/blender/blenkernel/intern/grease_pencil.cc index bfb506516f1..708004c6a67 100644 --- a/source/blender/blenkernel/intern/grease_pencil.cc +++ b/source/blender/blenkernel/intern/grease_pencil.cc @@ -944,15 +944,15 @@ TreeNode::TreeNode() this->color[0] = this->color[1] = this->color[2] = 0; } -TreeNode::TreeNode(GreasePencilLayerTreeNodeType type) : TreeNode() +TreeNode::TreeNode(const GreasePencilLayerTreeNodeType type) : TreeNode() { this->type = type; } -TreeNode::TreeNode(GreasePencilLayerTreeNodeType type, StringRefNull name) : TreeNode() +TreeNode::TreeNode(const GreasePencilLayerTreeNodeType type, const StringRef name) : TreeNode() { this->type = type; - this->GreasePencilLayerTreeNode::name = BLI_strdup(name.c_str()); + this->GreasePencilLayerTreeNode::name = BLI_strdupn(name.data(), name.size()); } TreeNode::TreeNode(const TreeNode &other) : TreeNode(GreasePencilLayerTreeNodeType(other.type)) @@ -967,10 +967,10 @@ TreeNode::~TreeNode() MEM_SAFE_FREE(this->GreasePencilLayerTreeNode::name); } -void TreeNode::set_name(StringRefNull name) +void TreeNode::set_name(const StringRef name) { MEM_SAFE_FREE(this->GreasePencilLayerTreeNode::name); - this->GreasePencilLayerTreeNode::name = BLI_strdup(name.c_str()); + this->GreasePencilLayerTreeNode::name = BLI_strdupn(name.data(), name.size()); } const LayerGroup &TreeNode::as_group() const @@ -1026,9 +1026,9 @@ LayerMask::LayerMask() this->flag = 0; } -LayerMask::LayerMask(StringRefNull name) : LayerMask() +LayerMask::LayerMask(const StringRef name) : LayerMask() { - this->layer_name = BLI_strdup_null(name.c_str()); + this->layer_name = BLI_strdupn(name.data(), name.size()); } LayerMask::LayerMask(const LayerMask &other) : LayerMask() @@ -1080,7 +1080,7 @@ Layer::Layer() this->runtime = MEM_new(__func__); } -Layer::Layer(StringRefNull name) : Layer() +Layer::Layer(const StringRef name) : Layer() { new (&this->base) TreeNode(GP_LAYER_TREE_LEAF, name); } @@ -1457,12 +1457,12 @@ StringRefNull Layer::parent_bone_name() const return (this->parsubstr != nullptr) ? StringRefNull(this->parsubstr) : StringRefNull(); } -void Layer::set_parent_bone_name(const char *new_name) +void Layer::set_parent_bone_name(const StringRef new_name) { if (this->parsubstr != nullptr) { MEM_freeN(this->parsubstr); } - this->parsubstr = BLI_strdup_null(new_name); + this->parsubstr = BLI_strdupn(new_name.data(), new_name.size()); } float4x4 Layer::parent_to_world(const Object &parent) const @@ -1502,12 +1502,12 @@ StringRefNull Layer::view_layer_name() const return (this->viewlayername != nullptr) ? StringRefNull(this->viewlayername) : StringRefNull(); } -void Layer::set_view_layer_name(const char *new_name) +void Layer::set_view_layer_name(const StringRef new_name) { if (this->viewlayername != nullptr) { MEM_freeN(this->viewlayername); } - this->viewlayername = BLI_strdup_null(new_name); + this->viewlayername = BLI_strdupn(new_name.data(), new_name.size()); } LayerGroup::LayerGroup() @@ -1520,7 +1520,7 @@ LayerGroup::LayerGroup() this->runtime = MEM_new(__func__); } -LayerGroup::LayerGroup(StringRefNull name) : LayerGroup() +LayerGroup::LayerGroup(StringRef name) : LayerGroup() { new (&this->base) TreeNode(GP_LAYER_TREE_GROUP, name); } @@ -1728,20 +1728,20 @@ Span LayerGroup::groups_for_write() return this->runtime->layer_group_cache_.as_span(); } -const TreeNode *LayerGroup::find_node_by_name(const StringRefNull name) const +const TreeNode *LayerGroup::find_node_by_name(const StringRef name) const { for (const TreeNode *node : this->nodes()) { - if (StringRef(node->name()) == StringRef(name)) { + if (node->name() == name) { return node; } } return nullptr; } -TreeNode *LayerGroup::find_node_by_name(const StringRefNull name) +TreeNode *LayerGroup::find_node_by_name(const StringRef name) { for (TreeNode *node : this->nodes_for_write()) { - if (StringRef(node->name()) == StringRef(name)) { + if (node->name() == name) { return node; } } @@ -1758,7 +1758,7 @@ void LayerGroup::set_expanded(const bool expanded) SET_FLAG_FROM_TEST(this->base.flag, expanded, GP_LAYER_TREE_NODE_EXPANDED); } -void LayerGroup::print_nodes(StringRefNull header) const +void LayerGroup::print_nodes(const StringRef header) const { std::cout << header << std::endl; Stack> next_node; @@ -3376,7 +3376,7 @@ static void unique_node_name_ex(VectorSet &names, static std::string unique_node_name(const GreasePencil &grease_pencil, const char *default_name, - blender::StringRef name) + const blender::StringRef name) { using namespace blender; char unique_name[MAX_NAME]; @@ -3386,22 +3386,22 @@ static std::string unique_node_name(const GreasePencil &grease_pencil, return unique_name; } -std::string GreasePencil::unique_layer_name(blender::StringRef name) +std::string GreasePencil::unique_layer_name(const blender::StringRef name) { return unique_node_name(*this, DATA_("Layer"), name); } static std::string unique_layer_group_name(const GreasePencil &grease_pencil, - blender::StringRefNull name) + const blender::StringRef name) { return unique_node_name(grease_pencil, DATA_("Group"), name); } -blender::bke::greasepencil::Layer &GreasePencil::add_layer(const blender::StringRefNull name, +blender::bke::greasepencil::Layer &GreasePencil::add_layer(const blender::StringRef name, const bool check_name_is_unique) { using namespace blender; - std::string unique_name = check_name_is_unique ? unique_layer_name(name) : name.c_str(); + std::string unique_name = check_name_is_unique ? unique_layer_name(name) : std::string(name); const int numLayers = layers().size(); CustomData_realloc(&layers_data, numLayers, numLayers + 1, CD_SET_DEFAULT); bke::greasepencil::Layer *new_layer = MEM_new(__func__, unique_name); @@ -3421,7 +3421,7 @@ blender::bke::greasepencil::Layer &GreasePencil::add_layer(const blender::String blender::bke::greasepencil::Layer &GreasePencil::add_layer( blender::bke::greasepencil::LayerGroup &parent_group, - const blender::StringRefNull name, + const blender::StringRef name, const bool check_name_is_unique) { using namespace blender; @@ -3481,11 +3481,11 @@ blender::bke::greasepencil::Layer &GreasePencil::duplicate_layer( } blender::bke::greasepencil::LayerGroup &GreasePencil::add_layer_group( - const blender::StringRefNull name, const bool check_name_is_unique) + const blender::StringRef name, const bool check_name_is_unique) { using namespace blender; std::string unique_name = check_name_is_unique ? unique_layer_group_name(*this, name) : - name.c_str(); + std::string(name); bke::greasepencil::LayerGroup *new_group = MEM_new(__func__, unique_name); return root_group().add_node(new_group->as_node()).as_group(); @@ -3493,7 +3493,7 @@ blender::bke::greasepencil::LayerGroup &GreasePencil::add_layer_group( blender::bke::greasepencil::LayerGroup &GreasePencil::add_layer_group( blender::bke::greasepencil::LayerGroup &parent_group, - const blender::StringRefNull name, + const blender::StringRef name, const bool check_name_is_unique) { using namespace blender; @@ -3620,18 +3620,18 @@ void GreasePencil::move_node_into(blender::bke::greasepencil::TreeNode &node, } const blender::bke::greasepencil::TreeNode *GreasePencil::find_node_by_name( - const blender::StringRefNull name) const + const blender::StringRef name) const { return this->root_group().find_node_by_name(name); } blender::bke::greasepencil::TreeNode *GreasePencil::find_node_by_name( - const blender::StringRefNull name) + const blender::StringRef name) { return this->root_group().find_node_by_name(name); } -blender::IndexMask GreasePencil::layer_selection_by_name(const blender::StringRefNull name, +blender::IndexMask GreasePencil::layer_selection_by_name(const blender::StringRef name, blender::IndexMaskMemory &memory) const { using namespace blender::bke::greasepencil; @@ -3770,7 +3770,7 @@ static GreasePencilModifierInfluenceData *influence_data_from_modifier(ModifierD void GreasePencil::rename_node(Main &bmain, blender::bke::greasepencil::TreeNode &node, - blender::StringRefNull new_name) + const blender::StringRef new_name) { using namespace blender; if (node.name() == new_name) { diff --git a/source/blender/makesdna/DNA_grease_pencil_types.h b/source/blender/makesdna/DNA_grease_pencil_types.h index f0a40ddaa2e..042fa48281e 100644 --- a/source/blender/makesdna/DNA_grease_pencil_types.h +++ b/source/blender/makesdna/DNA_grease_pencil_types.h @@ -543,12 +543,12 @@ typedef struct GreasePencil { /* Adding layers and layer groups. */ /** Adds a new layer with the given name to the top of root group. */ - blender::bke::greasepencil::Layer &add_layer(blender::StringRefNull name, + blender::bke::greasepencil::Layer &add_layer(blender::StringRef name, bool check_name_is_unique = true); /** Adds a new layer with the given name to the top of the given group. */ blender::bke::greasepencil::Layer &add_layer( blender::bke::greasepencil::LayerGroup &parent_group, - blender::StringRefNull name, + blender::StringRef name, bool check_name_is_unique = true); /** Duplicates the given layer to the top of the root group. */ blender::bke::greasepencil::Layer &duplicate_layer( @@ -558,11 +558,11 @@ typedef struct GreasePencil { blender::bke::greasepencil::LayerGroup &parent_group, const blender::bke::greasepencil::Layer &duplicate_layer); /** Add new layer group into the root group. */ - blender::bke::greasepencil::LayerGroup &add_layer_group(blender::StringRefNull name, + blender::bke::greasepencil::LayerGroup &add_layer_group(blender::StringRef name, bool check_name_is_unique = true); blender::bke::greasepencil::LayerGroup &add_layer_group( blender::bke::greasepencil::LayerGroup &parent_group, - blender::StringRefNull name, + blender::StringRef name, bool check_name_is_unique = true); /** @@ -585,14 +585,14 @@ typedef struct GreasePencil { blender::bke::greasepencil::LayerGroup &parent_group); /* Search functions. */ - const blender::bke::greasepencil::TreeNode *find_node_by_name(blender::StringRefNull name) const; - blender::bke::greasepencil::TreeNode *find_node_by_name(blender::StringRefNull name); - blender::IndexMask layer_selection_by_name(const blender::StringRefNull name, + const blender::bke::greasepencil::TreeNode *find_node_by_name(blender::StringRef name) const; + blender::bke::greasepencil::TreeNode *find_node_by_name(blender::StringRef name); + blender::IndexMask layer_selection_by_name(blender::StringRef name, blender::IndexMaskMemory &memory) const; void rename_node(Main &bmain, blender::bke::greasepencil::TreeNode &node, - blender::StringRefNull new_name); + blender::StringRef new_name); void remove_layer(blender::bke::greasepencil::Layer &layer); void remove_group(blender::bke::greasepencil::LayerGroup &group, bool keep_children = false);