diff options
author | Campbell Barton <campbell@blender.org> | 2022-08-19 06:46:37 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-08-19 06:46:37 +0300 |
commit | 2a15040777a04170a00c3591065b8243e40428d5 (patch) | |
tree | 88703ecd5d4d2684f265dc1c16e2a26e8497774a /source/blender/makesrna | |
parent | 97f9015ed0b1a6a3e6247d5958dd50bbcd21d5ca (diff) | |
parent | 529f0427fce2245d60eb885518f055209405b016 (diff) |
Merge branch 'blender-v3.3-release'
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r-- | source/blender/makesrna/intern/rna_path.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/rna_path.cc b/source/blender/makesrna/intern/rna_path.cc index f14e2113e13..99cb456027f 100644 --- a/source/blender/makesrna/intern/rna_path.cc +++ b/source/blender/makesrna/intern/rna_path.cc @@ -704,12 +704,16 @@ const char *RNA_path_array_index_token_find(const char *rna_path, const Property /* Valid 'array part' of a rna path can only have '[', ']' and digit characters. * It may have more than one of those (e.g. `[12][1]`) in case of multi-dimensional arrays. */ - int64_t rna_path_len = (int64_t)strlen(rna_path); + if (UNLIKELY(rna_path[0] == '\0')) { + return NULL; + } + size_t rna_path_len = (size_t)strlen(rna_path) - 1; if (rna_path[rna_path_len] != ']') { return NULL; } + const char *last_valid_index_token_start = NULL; - for (rna_path_len--; rna_path_len >= 0; rna_path_len--) { + while (rna_path_len--) { switch (rna_path[rna_path_len]) { case '[': if (rna_path_len <= 0 || rna_path[rna_path_len - 1] != ']') { |