Fix memory leak if an error occurred assigning id-property sequence

This commit is contained in:
Campbell Barton 2021-09-16 16:38:02 +10:00 committed by Jeroen Bakker
parent 5f156291cd
commit c6856da22c
Notes: blender-bot 2023-02-14 10:04:50 +01:00
Referenced by issue #77348, Blender LTS: Maintenance Task 2.83
1 changed files with 3 additions and 0 deletions

View File

@ -519,6 +519,7 @@ static IDProperty *idp_from_PySequence_Fast(const char *name, PyObject *ob)
for (i = 0; i < val.array.len; i++) {
item = ob_seq_fast_items[i];
if (((prop_data[i] = PyFloat_AsDouble(item)) == -1.0) && PyErr_Occurred()) {
IDP_FreeProperty(prop);
return NULL;
}
}
@ -531,6 +532,7 @@ static IDProperty *idp_from_PySequence_Fast(const char *name, PyObject *ob)
for (i = 0; i < val.array.len; i++) {
item = ob_seq_fast_items[i];
if (((prop_data[i] = PyC_Long_AsI32(item)) == -1) && PyErr_Occurred()) {
IDP_FreeProperty(prop);
return NULL;
}
}
@ -541,6 +543,7 @@ static IDProperty *idp_from_PySequence_Fast(const char *name, PyObject *ob)
for (i = 0; i < val.array.len; i++) {
item = ob_seq_fast_items[i];
if (BPy_IDProperty_Map_ValidateAndCreate(NULL, prop, item) == false) {
IDP_FreeProperty(prop);
return NULL;
}
}