PyAPI: Fix memory leak w/ empty, allocated enums
This commit is contained in:
@@ -1395,7 +1395,7 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
EnumPropertyItem *enum_item;
|
EnumPropertyItem *enum_item;
|
||||||
bool free = false;
|
bool free;
|
||||||
|
|
||||||
/* don't throw error here, can't trust blender 100% to give the
|
/* don't throw error here, can't trust blender 100% to give the
|
||||||
* right values, python code should not generate error for that */
|
* right values, python code should not generate error for that */
|
||||||
@@ -1404,6 +1404,9 @@ static PyObject *pyrna_enum_to_py(PointerRNA *ptr, PropertyRNA *prop, int val)
|
|||||||
ret = PyUnicode_FromString(enum_item->identifier);
|
ret = PyUnicode_FromString(enum_item->identifier);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
if (free) {
|
||||||
|
MEM_freeN(enum_item);
|
||||||
|
}
|
||||||
RNA_property_enum_items(NULL, ptr, prop, &enum_item, NULL, &free);
|
RNA_property_enum_items(NULL, ptr, prop, &enum_item, NULL, &free);
|
||||||
|
|
||||||
/* Do not print warning in case of DummyRNA_NULL_items, this one will never match any value... */
|
/* Do not print warning in case of DummyRNA_NULL_items, this one will never match any value... */
|
||||||
|
Reference in New Issue
Block a user