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>2012-11-08 13:38:18 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-11-08 13:38:18 +0400
commit03d0040fe7936239c8f51988cb9fd36c8a5d05dd (patch)
treeb39a05b034d82110f668daa428cb700b9079c9de /source/blender/makesrna
parent529209ff832a8737ad26115d9cd7ff21fd5eb698 (diff)
patch [#32874] Fixed the property path calculation in situations where the link.index variable gets set during the search.
From Florian K?\246berle
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r--source/blender/makesrna/intern/rna_access.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index 1fe46342819..69332dcd250 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -4011,12 +4011,15 @@ static char *rna_idp_path(PointerRNA *ptr, IDProperty *haystack, IDProperty *nee
BLI_assert(haystack->type == IDP_GROUP);
link.up = parent_link;
+ /* always set both name and index,
+ * else a stale value might get used */
link.name = NULL;
link.index = -1;
for (i = 0, iter = haystack->data.group.first; iter; iter = iter->next, i++) {
if (needle == iter) { /* found! */
link.name = iter->name;
+ link.index = -1;
path = rna_idp_path_create(&link);
break;
}
@@ -4026,6 +4029,7 @@ static char *rna_idp_path(PointerRNA *ptr, IDProperty *haystack, IDProperty *nee
PointerRNA child_ptr = RNA_pointer_get(ptr, iter->name);
if (child_ptr.type) {
link.name = iter->name;
+ link.index = -1;
if ((path = rna_idp_path(&child_ptr, iter, needle, &link))) {
break;
}