Skip to content

Commit d750f78

Browse files
v-einhoffstadt
authored andcommitted
fix: PyObject leaks related to PyDict_SetItemString calls in various places
1 parent c1c53c7 commit d750f78

File tree

4 files changed

+19
-19
lines changed

4 files changed

+19
-19
lines changed

src/dearpygui_commands.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4010,7 +4010,7 @@ get_item_types(PyObject* self, PyObject* args, PyObject* kwargs)
40104010
mvPySafeLockGuard lk(GContext->mutex);
40114011

40124012
PyObject* pdict = PyDict_New();
4013-
#define X(el) PyDict_SetItemString(pdict, #el, PyLong_FromLong((int)mvAppItemType::el));
4013+
#define X(el) PyDict_SetItemString(pdict, #el, mvPyObject(PyLong_FromLong((int)mvAppItemType::el)));
40144014
MV_ITEM_TYPES
40154015
#undef X
40164016

src/mvFontItems.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ void mvFont::getSpecificConfiguration(PyObject* dict)
116116
if (dict == nullptr)
117117
return;
118118

119-
PyDict_SetItemString(dict, "file", ToPyString(_file));
120-
PyDict_SetItemString(dict, "size", ToPyFloat(_size));
121-
PyDict_SetItemString(dict, "pixel_snapH", ToPyBool(_pixelSnapH));
122-
PyDict_SetItemString(dict, "pixel_snapV", ToPyBool(_pixelSnapV));
119+
PyDict_SetItemString(dict, "file", mvPyObject(ToPyString(_file)));
120+
PyDict_SetItemString(dict, "size", mvPyObject(ToPyFloat(_size)));
121+
PyDict_SetItemString(dict, "pixel_snapH", mvPyObject(ToPyBool(_pixelSnapH)));
122+
PyDict_SetItemString(dict, "pixel_snapV", mvPyObject(ToPyBool(_pixelSnapV)));
123123
}

src/mvItemHandlers.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ void mvClickedHandler::getSpecificConfiguration(PyObject* dict)
241241
if (dict == nullptr)
242242
return;
243243

244-
PyDict_SetItemString(dict, "button", ToPyInt(_button));
244+
PyDict_SetItemString(dict, "button", mvPyObject(ToPyInt(_button)));
245245
}
246246

247247
void mvDoubleClickedHandler::customAction(void* data)
@@ -287,7 +287,7 @@ void mvDoubleClickedHandler::getSpecificConfiguration(PyObject* dict)
287287
if (dict == nullptr)
288288
return;
289289

290-
PyDict_SetItemString(dict, "button", ToPyInt(_button));
290+
PyDict_SetItemString(dict, "button", mvPyObject(ToPyInt(_button)));
291291
}
292292

293293
void mvDeactivatedAfterEditHandler::customAction(void* data)

src/mvPlotting.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3360,16 +3360,16 @@ DearPyGui::fill_configuration_dict(const mvDragLineConfig& inConfig, PyObject* o
33603360
if (outDict == nullptr)
33613361
return;
33623362

3363-
PyDict_SetItemString(outDict, "color", ToPyColor(inConfig.color));
3364-
PyDict_SetItemString(outDict, "thickness", ToPyFloat(inConfig.thickness));
3365-
PyDict_SetItemString(outDict, "show_label", ToPyBool(inConfig.thickness));
3366-
PyDict_SetItemString(outDict, "vertical", ToPyBool(inConfig.vertical));
3363+
PyDict_SetItemString(outDict, "color", mvPyObject(ToPyColor(inConfig.color)));
3364+
PyDict_SetItemString(outDict, "thickness", mvPyObject(ToPyFloat(inConfig.thickness)));
3365+
PyDict_SetItemString(outDict, "show_label", mvPyObject(ToPyBool(inConfig.thickness)));
3366+
PyDict_SetItemString(outDict, "vertical", mvPyObject(ToPyBool(inConfig.vertical)));
33673367

33683368

33693369
// helper to check and set bit
33703370
auto checkbitset = [outDict](const char* keyword, int flag, const int& flags)
33713371
{
3372-
PyDict_SetItemString(outDict, keyword, ToPyBool(flags & flag));
3372+
PyDict_SetItemString(outDict, keyword, mvPyObject(ToPyBool(flags & flag)));
33733373
};
33743374

33753375
// drag line flags
@@ -3390,7 +3390,7 @@ DearPyGui::fill_configuration_dict(const mvDragRectConfig& inConfig, PyObject* o
33903390
// helper to check and set bit
33913391
auto checkbitset = [outDict](const char* keyword, int flag, const int& flags)
33923392
{
3393-
PyDict_SetItemString(outDict, keyword, ToPyBool(flags & flag));
3393+
PyDict_SetItemString(outDict, keyword, mvPyObject(ToPyBool(flags & flag)));
33943394
};
33953395

33963396
// drag rect flags
@@ -3415,7 +3415,7 @@ DearPyGui::fill_configuration_dict(const mvDragPointConfig& inConfig, PyObject*
34153415
// helper to check and set bit
34163416
auto checkbitset = [outDict](const char* keyword, int flag, const int& flags)
34173417
{
3418-
PyDict_SetItemString(outDict, keyword, ToPyBool(flags & flag));
3418+
PyDict_SetItemString(outDict, keyword, mvPyObject(ToPyBool(flags & flag)));
34193419
};
34203420

34213421
// drag rect flags
@@ -3483,7 +3483,7 @@ DearPyGui::fill_configuration_dict(const mvBarSeriesConfig& inConfig, PyObject*
34833483
if (outDict == nullptr)
34843484
return;
34853485

3486-
PyDict_SetItemString(outDict, "weight", ToPyFloat(inConfig.weight));
3486+
PyDict_SetItemString(outDict, "weight", mvPyObject(ToPyFloat(inConfig.weight)));
34873487

34883488
// helper to check and set bit
34893489
auto checkbitset = [outDict](const char* keyword, int flag, const int& flags)
@@ -3518,10 +3518,10 @@ DearPyGui::fill_configuration_dict(const mvBarGroupSeriesConfig& inConfig, PyObj
35183518
if (outDict == nullptr)
35193519
return;
35203520

3521-
PyDict_SetItemString(outDict, "label_ids", ToPyList(inConfig.label_ids));
3522-
PyDict_SetItemString(outDict, "group_width", ToPyFloat(inConfig.group_width));
3523-
PyDict_SetItemString(outDict, "group_size", ToPyInt(inConfig.group_size));
3524-
PyDict_SetItemString(outDict, "shift", ToPyInt(inConfig.shift));
3521+
PyDict_SetItemString(outDict, "label_ids", mvPyObject(ToPyList(inConfig.label_ids)));
3522+
PyDict_SetItemString(outDict, "group_width", mvPyObject(ToPyFloat(inConfig.group_width)));
3523+
PyDict_SetItemString(outDict, "group_size", mvPyObject(ToPyInt(inConfig.group_size)));
3524+
PyDict_SetItemString(outDict, "shift", mvPyObject(ToPyInt(inConfig.shift)));
35253525

35263526
// helper to check and set bit
35273527
auto checkbitset = [outDict](const char* keyword, int flag, const int& flags)

0 commit comments

Comments
 (0)