From 31392a75f715a57076533847509790f3c23487ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Kerbiriou?= Date: Tue, 8 Feb 2022 23:21:56 +0100 Subject: [PATCH] Gui: replace s# format unit with s* --- src/Gui/ApplicationPy.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Gui/ApplicationPy.cpp b/src/Gui/ApplicationPy.cpp index a780df2021..a4ba8ac936 100644 --- a/src/Gui/ApplicationPy.cpp +++ b/src/Gui/ApplicationPy.cpp @@ -1217,26 +1217,29 @@ PyObject* Application::sAddIconPath(PyObject * /*self*/, PyObject *args) PyObject* Application::sAddIcon(PyObject * /*self*/, PyObject *args) { const char *iconName; - const char *content; - Py_ssize_t size = 0; + Py_buffer content; const char *format = "XPM"; - if (!PyArg_ParseTuple(args, "ss#|s", &iconName,&content,&size,&format)) + if (!PyArg_ParseTuple(args, "ss*|s", &iconName, &content, &format)) return nullptr; QPixmap icon; if (BitmapFactory().findPixmapInCache(iconName, icon)) { PyErr_SetString(PyExc_AssertionError, "Icon with this name already registered"); + PyBuffer_Release(&content); return nullptr; } - QByteArray ary(content,size); + const char* contentStr = static_cast(content.buf); + QByteArray ary(contentStr, content.len); icon.loadFromData(ary, format); if (icon.isNull()){ - QString file = QString::fromUtf8(content); + QString file = QString::fromUtf8(contentStr, content.len); icon.load(file); } + PyBuffer_Release(&content); + if (icon.isNull()) { PyErr_SetString(Base::BaseExceptionFreeCADError, "Invalid icon added to application"); return nullptr;