From 55c5e9ac79885e9627cc9e41832fe1f57011b8b7 Mon Sep 17 00:00:00 2001 From: Vladimir Ein Date: Thu, 23 Apr 2026 22:54:43 +0500 Subject: [PATCH] fix: Proper release of the buffer obtained via PyObject_GetBuffer (#2577) --- src/mvPyUtils.cpp | 10 ++++------ src/mvTextureItems.cpp | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/mvPyUtils.cpp b/src/mvPyUtils.cpp index 7fac6d492..3bae267cc 100644 --- a/src/mvPyUtils.cpp +++ b/src/mvPyUtils.cpp @@ -1135,9 +1135,8 @@ ToUCharVect(PyObject* value, const std::string& message) { items.emplace_back((unsigned char)BufferViewer(buffer_info, i)); } + PyBuffer_Release(&buffer_info); } - - PyBuffer_Release(&buffer_info); } else @@ -1188,9 +1187,8 @@ ToIntVect(PyObject* value, const std::string& message) { items.emplace_back(BufferViewer(buffer_info, i)); } + PyBuffer_Release(&buffer_info); } - - PyBuffer_Release(&buffer_info); } else @@ -1276,8 +1274,8 @@ ToFloatVect(PyObject* value, const std::string& message) { items.emplace_back(BufferViewer(buffer_info, i)); } + PyBuffer_Release(&buffer_info); } - PyBuffer_Release(&buffer_info); } else @@ -1328,8 +1326,8 @@ ToDoubleVect(PyObject* value, const std::string& message) { items.emplace_back(BufferViewer(buffer_info, i)); } + PyBuffer_Release(&buffer_info); } - PyBuffer_Release(&buffer_info); } else diff --git a/src/mvTextureItems.cpp b/src/mvTextureItems.cpp index baf606a87..b7b6329c3 100644 --- a/src/mvTextureItems.cpp +++ b/src/mvTextureItems.cpp @@ -218,8 +218,8 @@ void mvRawTexture::setPyValue(PyObject* value) { mvThrowPythonError(mvErrorCode::mvTextureNotFound, GetEntityCommand(type), "Texture data not valid", this); } + PyBuffer_Release(&buffer_info); } - PyBuffer_Release(&buffer_info); _buffer = mvPyObject(value, true); } }