BLI_string_utils: BLI_uniquename no longer accepts NULL defname
A NULL defname would early exit (doing nothing) this isn't good behavior as this function should always make the name unique and a NULL defname is likely an error in the code which would allow duplicate names. This is also inconsistent with BLI_uniquename_cb which always wrote the defname into the name if it was empty. Mark this argument as never-NULL.
This commit is contained in:
@@ -42,7 +42,8 @@ struct AssetTagEnsureResult {
|
|||||||
bool is_new;
|
bool is_new;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct AssetTag *BKE_asset_metadata_tag_add(struct AssetMetaData *asset_data, const char *name);
|
struct AssetTag *BKE_asset_metadata_tag_add(struct AssetMetaData *asset_data, const char *name)
|
||||||
|
ATTR_NONNULL(1, 2);
|
||||||
/**
|
/**
|
||||||
* Make sure there is a tag with name \a name, create one if needed.
|
* Make sure there is a tag with name \a name, create one if needed.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "BLI_buffer.h"
|
#include "BLI_buffer.h"
|
||||||
|
#include "BLI_compiler_attrs.h"
|
||||||
#include "BLI_utildefines.h"
|
#include "BLI_utildefines.h"
|
||||||
|
|
||||||
#include "DNA_particle_types.h"
|
#include "DNA_particle_types.h"
|
||||||
@@ -376,7 +377,8 @@ void psys_reset(struct ParticleSystem *psys, int mode);
|
|||||||
|
|
||||||
void psys_find_parents(struct ParticleSimulationData *sim, bool use_render_params);
|
void psys_find_parents(struct ParticleSimulationData *sim, bool use_render_params);
|
||||||
|
|
||||||
void psys_unique_name(struct Object *object, struct ParticleSystem *psys, const char *defname);
|
void psys_unique_name(struct Object *object, struct ParticleSystem *psys, const char *defname)
|
||||||
|
ATTR_NONNULL(1, 2, 3);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculates paths ready for drawing/rendering
|
* Calculates paths ready for drawing/rendering
|
||||||
|
|||||||
@@ -265,7 +265,8 @@ bool BKE_id_attribute_calc_unique_name(ID *id, const char *name, char *outname)
|
|||||||
BLI_strncpy_utf8(outname, name, maxlength);
|
BLI_strncpy_utf8(outname, name, maxlength);
|
||||||
}
|
}
|
||||||
|
|
||||||
return BLI_uniquename_cb(unique_name_cb, &data, nullptr, '.', outname, maxlength);
|
const char *defname = ""; /* Dummy argument, never used as `name` is never zero length. */
|
||||||
|
return BLI_uniquename_cb(unique_name_cb, &data, defname, '.', outname, maxlength);
|
||||||
}
|
}
|
||||||
|
|
||||||
CustomDataLayer *BKE_id_attribute_new(ID *id,
|
CustomDataLayer *BKE_id_attribute_new(ID *id,
|
||||||
|
|||||||
@@ -4416,7 +4416,8 @@ void CustomData_set_layer_unique_name(CustomData *data, const int index)
|
|||||||
STRNCPY(nlayer->name, DATA_(typeInfo->defaultname));
|
STRNCPY(nlayer->name, DATA_(typeInfo->defaultname));
|
||||||
}
|
}
|
||||||
|
|
||||||
BLI_uniquename_cb(customdata_unique_check, &data_arg, nullptr, '.', nlayer->name, max_length);
|
const char *defname = ""; /* Dummy argument, never used as `name` is never zero length. */
|
||||||
|
BLI_uniquename_cb(customdata_unique_check, &data_arg, defname, '.', nlayer->name, max_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CustomData_validate_layer_name(const CustomData *data,
|
void CustomData_validate_layer_name(const CustomData *data,
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ bool BLI_uniquename(struct ListBase *list,
|
|||||||
const char *defname,
|
const char *defname,
|
||||||
char delim,
|
char delim,
|
||||||
int name_offset,
|
int name_offset,
|
||||||
size_t name_len) ATTR_NONNULL(1);
|
size_t name_len) ATTR_NONNULL(1, 3);
|
||||||
|
|
||||||
/* Expand array functions. */
|
/* Expand array functions. */
|
||||||
|
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ bool BLI_uniquename(
|
|||||||
BLI_assert(name_len > 1);
|
BLI_assert(name_len > 1);
|
||||||
|
|
||||||
/* See if we are given an empty string */
|
/* See if we are given an empty string */
|
||||||
if (ELEM(NULL, vlink, defname)) {
|
if (ELEM(NULL, vlink)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user