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:
authorBastien Montagne <montagne29@wanadoo.fr>2018-04-17 12:59:14 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2018-04-17 12:59:14 +0300
commitaff71a7fdced77a29a44124f8caae191b27ac91d (patch)
treea70f56e883f115a1affa7faa6e25e1aefb363e5c
parenteb6fe5fa94b86a0a20742e06bf1e68b4cbaf6693 (diff)
Fix (unreported) RNA sometimes trying to get named sub-props from non-Group IDProp.
Why exactly this happens remains unclear, found that in the autumn.blenrig file of Spring production while working on static overrides... Tons of ugly IDProps in that rig. xD
-rw-r--r--source/blender/makesrna/intern/rna_access.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c
index bec6830f8c3..80e377ad8e1 100644
--- a/source/blender/makesrna/intern/rna_access.c
+++ b/source/blender/makesrna/intern/rna_access.c
@@ -277,8 +277,9 @@ IDProperty *RNA_struct_idprops(PointerRNA *ptr, bool create)
{
StructRNA *type = ptr->type;
- if (type && type->idproperties)
+ if (type && type->idproperties) {
return type->idproperties(ptr, create);
+ }
return NULL;
}
@@ -292,8 +293,16 @@ static IDProperty *rna_idproperty_find(PointerRNA *ptr, const char *name)
{
IDProperty *group = RNA_struct_idprops(ptr, 0);
- if (group)
- return IDP_GetPropertyFromGroup(group, name);
+ if (group) {
+ if (group->type == IDP_GROUP) {
+ return IDP_GetPropertyFromGroup(group, name);
+ }
+ else {
+ /* Not sure why that happens sometimes, with nested properties... */
+ /* Seems to be actually array prop, name is usually "0"... To be sorted out later. */
+// printf("Got unexpected IDProp container when trying to retrieve %s: %d\n", name, group->type);
+ }
+ }
return NULL;
}