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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user