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
This commit is contained in:
Bastien Montagne 2018-04-17 11:59:14 +02:00
parent eb6fe5fa94
commit aff71a7fdc
1 changed files with 12 additions and 3 deletions

View File

@ -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;
}