Fix: GPv3: Crash renaming a layer

When renaming a layer to a (long) name that was already taken
by another layer, Blender would crash.
This was because the memory for the unique string was held by
`std::string` which cannot grow.
The solution is to use `char unique_name[MAX_NAME]`.
This commit is contained in:
Falk David
2023-10-18 17:01:25 +02:00
parent 236e9ee6cb
commit 37d2eaee4e

View File

@@ -2014,9 +2014,10 @@ static std::string unique_node_name(const GreasePencil &grease_pencil,
blender::StringRefNull name)
{
using namespace blender;
std::string unique_name(name.c_str());
char unique_name[MAX_NAME];
BLI_strncpy(unique_name, name.c_str(), MAX_NAME);
VectorSet<StringRefNull> names = get_node_names(grease_pencil);
unique_node_name_ex(names, default_name, unique_name.data());
unique_node_name_ex(names, default_name, unique_name);
return unique_name;
}