Skip to content

Commit be049e2

Browse files
v-einhoffstadt
authored andcommitted
fix: Proper release of the buffer obtained via PyObject_GetBuffer (#2577)
1 parent 59c078c commit be049e2

2 files changed

Lines changed: 5 additions & 7 deletions

File tree

src/mvPyUtils.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,9 +1135,8 @@ ToUCharVect(PyObject* value, const std::string& message)
11351135
{
11361136
items.emplace_back((unsigned char)BufferViewer(buffer_info, i));
11371137
}
1138+
PyBuffer_Release(&buffer_info);
11381139
}
1139-
1140-
PyBuffer_Release(&buffer_info);
11411140
}
11421141

11431142
else
@@ -1188,9 +1187,8 @@ ToIntVect(PyObject* value, const std::string& message)
11881187
{
11891188
items.emplace_back(BufferViewer(buffer_info, i));
11901189
}
1190+
PyBuffer_Release(&buffer_info);
11911191
}
1192-
1193-
PyBuffer_Release(&buffer_info);
11941192
}
11951193

11961194
else
@@ -1276,8 +1274,8 @@ ToFloatVect(PyObject* value, const std::string& message)
12761274
{
12771275
items.emplace_back(BufferViewer(buffer_info, i));
12781276
}
1277+
PyBuffer_Release(&buffer_info);
12791278
}
1280-
PyBuffer_Release(&buffer_info);
12811279
}
12821280

12831281
else
@@ -1328,8 +1326,8 @@ ToDoubleVect(PyObject* value, const std::string& message)
13281326
{
13291327
items.emplace_back(BufferViewer(buffer_info, i));
13301328
}
1329+
PyBuffer_Release(&buffer_info);
13311330
}
1332-
PyBuffer_Release(&buffer_info);
13331331
}
13341332

13351333
else

src/mvTextureItems.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ void mvRawTexture::setPyValue(PyObject* value)
218218
{
219219
mvThrowPythonError(mvErrorCode::mvTextureNotFound, GetEntityCommand(type), "Texture data not valid", this);
220220
}
221+
PyBuffer_Release(&buffer_info);
221222
}
222-
PyBuffer_Release(&buffer_info);
223223
_buffer = mvPyObject(value, true);
224224
}
225225
}

0 commit comments

Comments
 (0)