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 /source/blender/makesrna
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
Diffstat (limited to 'source/blender/makesrna')
-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;
}