Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-06-17 16:35:00 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-06-17 16:35:00 +0300
commit6453814ec033feb4549a9d565efc4ac968b2ac13 (patch)
tree027f3723ae33a22ffa7f8749e9b65c9305cc8035 /source/blender/blenlib
parent42103a3eb8e9ee341c89310cc2343bc21b6ae7e2 (diff)
BLI_path: add string size debug define
Off by default, only for debugging.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r--source/blender/blenlib/intern/path_util.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c
index a3651de73a2..784e017961e 100644
--- a/source/blender/blenlib/intern/path_util.c
+++ b/source/blender/blenlib/intern/path_util.c
@@ -72,6 +72,8 @@ static bool BLI_path_is_abs(const char *name);
#endif /* WIN32 */
+// #define DEBUG_STRSIZE
+
/* implementation */
/**
@@ -658,6 +660,9 @@ void BLI_path_rel(char *file, const char *relfile)
*/
bool BLI_path_suffix(char *string, size_t maxlen, const char *suffix, const char *sep)
{
+#ifdef DEBUG_STRSIZE
+ memset(string, 0xff, sizeof(*string) * maxlen);
+#endif
const size_t string_len = strlen(string);
const size_t suffix_len = strlen(suffix);
const size_t sep_len = strlen(sep);
@@ -1045,6 +1050,9 @@ bool BLI_path_abs(char *path, const char *basepath)
*/
bool BLI_path_cwd(char *path, const size_t maxlen)
{
+#ifdef DEBUG_STRSIZE
+ memset(path, 0xff, sizeof(*path) * maxlen);
+#endif
bool wasrelative = true;
const int filelen = strlen(path);
@@ -1132,6 +1140,9 @@ bool BLI_path_program_search(
char *fullname, const size_t maxlen,
const char *name)
{
+#ifdef DEBUG_STRSIZE
+ memset(fullname, 0xff, sizeof(*fullname) * maxlen);
+#endif
const char *path;
bool retval = false;
@@ -1434,6 +1445,9 @@ bool BLI_testextensie_glob(const char *str, const char *ext_fnmatch)
*/
bool BLI_replace_extension(char *path, size_t maxlen, const char *ext)
{
+#ifdef DEBUG_STRSIZE
+ memset(path, 0xff, sizeof(*path) * maxlen);
+#endif
const size_t path_len = strlen(path);
const size_t ext_len = strlen(ext);
ssize_t a;
@@ -1460,6 +1474,9 @@ bool BLI_replace_extension(char *path, size_t maxlen, const char *ext)
*/
bool BLI_ensure_extension(char *path, size_t maxlen, const char *ext)
{
+#ifdef DEBUG_STRSIZE
+ memset(path, 0xff, sizeof(*path) * maxlen);
+#endif
const size_t path_len = strlen(path);
const size_t ext_len = strlen(ext);
ssize_t a;
@@ -1488,6 +1505,9 @@ bool BLI_ensure_extension(char *path, size_t maxlen, const char *ext)
bool BLI_ensure_filename(char *filepath, size_t maxlen, const char *filename)
{
+#ifdef DEBUG_STRSIZE
+ memset(filepath, 0xff, sizeof(*filepath) * maxlen);
+#endif
char *c = (char *)BLI_last_slash(filepath);
if (!c || ((c - filepath) < maxlen - (strlen(filename) + 1))) {
strcpy(c ? &c[1] : filepath, filename);
@@ -1504,6 +1524,10 @@ bool BLI_ensure_filename(char *filepath, size_t maxlen, const char *filename)
* */
void BLI_split_dirfile(const char *string, char *dir, char *file, const size_t dirlen, const size_t filelen)
{
+#ifdef DEBUG_STRSIZE
+ memset(dir, 0xff, sizeof(*dir) * dirlen);
+ memset(file, 0xff, sizeof(*file) * filelen);
+#endif
const char *lslash_str = BLI_last_slash(string);
const size_t lslash = lslash_str ? (size_t)(lslash_str - string) + 1 : 0;
@@ -1563,6 +1587,9 @@ void BLI_path_append(char *__restrict dst, const size_t maxlen, const char *__re
*/
void BLI_join_dirfile(char *__restrict dst, const size_t maxlen, const char *__restrict dir, const char *__restrict file)
{
+#ifdef DEBUG_STRSIZE
+ memset(dst, 0xff, sizeof(*dst) * maxlen);
+#endif
size_t dirlen = BLI_strnlen(dir, maxlen);
/* args can't match */
@@ -1603,6 +1630,9 @@ void BLI_join_dirfile(char *__restrict dst, const size_t maxlen, const char *__r
*/
size_t BLI_path_join(char *__restrict dst, const size_t dst_len, const char *path, ...)
{
+#ifdef DEBUG_STRSIZE
+ memset(dst, 0xff, sizeof(*dst) * dst_len);
+#endif
if (UNLIKELY(dst_len == 0)) {
return 0;
}